1
我們有一個工作的uwsgi服務器,它帶有一些RPC調用(注意:我們可以使用uwsgi.rpc與進程交談,所以他們最終的設置很好)。我們發現我們有一些進程沒有在uwsgi下運行,我們想要與RPC服務器交談。縱觀uwsgi源,它看起來像它應該是比較容易從背後uwsgi沒有運行一個python程序進行溝通,但所有我們能夠得到的是:從非uwsgi進程與uwsgi RPC應用程序交談
read(): Resource temporarily unavailable [proto/uwsgi.c line 75]
Fri Apr 12 15:21:07 2013 - error parsing request
這裏是我們使用的代碼。我認爲它正確地封裝了數據,但我不知道爲什麼它不工作:
import socket
from struct import pack
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect(('127.0.0.1', 3035))
fun = 'test_fun'
arg = 'hi'
ulen = len(fun)
arglen = len(arg)
buflen = (2 + ulen) + (2 + arglen)
buf = pack('!B', 173)
buf += pack('!H', buflen)
buf += pack('!B', 0)
buf += pack('!B', ulen & 0xff)
buf += pack('!B', (ulen>>8) & 0xff)
buf += fun
buf += pack('!B', arglen & 0xff)
buf += pack('!B', (arglen>>8) & 0xff)
buf += arg
sent = c.send(buf)
c.close()
任何你不是在使用uwsgi庫的理由? http://projects.unbit.it/uwsgi/wiki/RPC – Wolph
我們在各地都在使用消費者。它看起來像我們可以使用uwsgi,但我們不得不添加一些插件(https://github.com/unbit/uwsgi/issues/29),我們需要uwsgi的唯一東西是發送RPC請求,所以它似乎是矯枉過正。 –