fsociety
fsociety

Reputation: 1027

Python gearman basic example error

I am trying a vaery basic example of string reversal using Python gearman module MY localhost has been set up using IIS on port 4730 However i am getting the error

raise UnknownCommandError(missing_callback_msg)
UnknownCommandError: Could not handle command: 'GEARMAN_COMMAND_TEXT_COMMAND' - {'raw_text': 'HTTP/1.1 400 Bad Request\r'}

Client.py

    import gearman
    #  setup client, connect to Gearman HQ
    gm_client = gearman.GearmanClient(['localhost:4730'])
    print 'Sending job...'
    request = gm_client.submit_job('reverse', 'Hello World!')
    print "Result: " + request.result

Worker.py

    import gearman
    gm_worker = gearman.GearmanWorker(['localhost:4730'])
    #  define method to handled 'reverse' work
    def task_listener_reverse(gearman_worker, gearman_job):
            print 'reporting status'
            return reversed(gearman_job.data)
    gm_worker.set_client_id('your_worker_client_id_name')
    gm_worker.register_task('reverse', task_listener_reverse)
    gm_worker.work()

Any suggestions as to why this might occur and how to resolve the same

Upvotes: 2

Views: 648

Answers (2)

Yash Mehrotra
Yash Mehrotra

Reputation: 3130

Instead of return reversed(gearman_job.data) try using return ''.join([i for i in reversed(gearman_job.data[::1])]).

Returning reversed(...) will give you a Type Error.

Upvotes: 1

Alan Robertson
Alan Robertson

Reputation: 661

Current versions of gearman have a different import structure. You need to say from gearman.worker import GearmanWorker and from gearman.client import GearmanClient.

In addition, the return should say return ''.join([i for i in reversed(gearman_job.data[::1])]) to get a reversed string.

Upvotes: 1

Related Questions