@termitik

Как создать общую переменную в данном коде?

Всем привет!
Есть такой код:

from apiserver import ApiServer, ApiRoute
import socket
import time
from multiprocessing import Process, Queue



class MyServer(ApiServer): 

	@ApiRoute("/")
	def addbar(req):
		print(req["tx_body"])
		a.put("HelloWORLD")
		print(a.get())
		return {"tx_body":req["tx_body"]+1}

	@ApiRoute("/baz")
	def justret(req):
		if req:
			raise ApiError(501,"no data in for baz")
			return {"obj":1}
def sock(a):
	print("Hello")
	print(a.get())
	s = socket.socket()         
 
	s.bind(('0.0.0.0', 5001 ))
	s.listen(0)                 
 	
	while True:
		print(a.get())

		client, addr = s.accept()
		while addr:
			print(a.get())
			if a.get() != "":
				#print("ok")
				client.send(a.get().encode())
				#a.get() = ""
			else:
				client.send("=(((((((".encode())
			time.sleep(5)

		print("Closing connection")
		client.close()


def main():
	a = Queue() 
	a.put("")
	s = Process(target=MyServer("127.0.0.1",5000).serve_forever)
	a = Process(target=sock, args=(a,))

	s.start()
	a.start()
	s.join()
	a.join()


if __name__ == "__main__":
	main()


В качестве библиотеки apiserver используется : https://gist.github.com/earonesty/ab07b4c0fea2c226...

Каким образом мне передать переменную a = Queue() в процесс s?
Необходимо что бы переменная изменялась в этой части кода
@ApiRoute("/")
	def addbar(req):
		print(req["tx_body"])
		a.put("HelloWORLD")
		print(a.get())
		return {"tx_body":req["tx_body"]+1}
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
half-life
@half-life
sarcasm
Ну возможно переопределить метод __init__ у MyServer , не?
/sarcasm
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы