3

ギアマン タスクを送信するための単純な python スクリプトがあります。

クライアント:

        # "source" is a simple tuple
        client = GearmanClient(['localhost'])
        client.submit_job('queue_feed', simplejson.dumps(source))

サーバ:

def queue_feed(work, job):
    source = simplejson.loads(job.data)
    print source

if __name__ == '__main__':
    if len(sys.argv) > 1:
        if sys.argv[1] == "spawn":
            worker = GearmanWorker(['localhost'])
            #nohup python /home/padsquad/apps/gearman_articles.py spawn &
            worker.register_task('queue_feed', queue_feed)
            print 'working...'
            worker.work()

ここで何が間違っているのかわかりません。ギアマンサーバーから次のエラーが表示され続けます。

TypeError: Expecting byte string, got <type 'NoneType'>
4

1 に答える 1

4

私の最善の推測は、関数queue_feedが何かに想定されてreturnいるということです:例:

def queue_feed(work, job):
    source = simplejson.loads(job.data)
    print source
    return source

Python関数から明示的に何かを返さない場合、暗黙的に返さNoneれるため、Pythonは取得について不平を言っていますNoneType

于 2013-01-10T14:52:30.713 に答える