У меня есть довольно простой код рабочего, возможно, будет глупая ошибка.Функция gearman в рабочем состоянии остается неопределенной
class BingWorker(object):
def __init__(self):
self.gm_worker = gearman.GearmanWorker(['localhost:4730'])
completed_job_request = self.gm_worker.register_task('bingmedia', callBing)
def callBing(self, gearman_worker, gearman_job):
print "In worker ", gearman_job.data
return "Kools"
def run(self):
self.gm_worker.work()
if __name__ == '__main__':
BingWorker().run()
дает
Traceback (most recent call last):
File "worker.py", line 16, in <module>
BingWorker().run()
File "worker.py", line 6, in __init__
completed_job_request = self.gm_worker.register_task('bingmedia', callBing)
NameError: global name 'callBing' is not defined
любые намеки? пример очень похож на пример python на http://gearman.org/examples/reverse/. просто положить в классовой структуре
Улучшен код:
class BingWorker(object):
def __init__(self):
self.gm_worker = gearman.GearmanWorker(['localhost:4730'])
def callBing(self, gearman_worker, gearman_job):
print "In worker ", gearman_job.data
return "Kools"
def run(self):
completed_job_request = self.gm_worker.register_task('bingmedia', self.callBing)
self.gm_worker.work()
if __name__ == '__main__':
BingWorker().run()
Я обновил код, не могли бы вы пересмотреть – nlper
Обновленный код выглядит лучше, чем отсутствие 'docstrings'. Реальный вопрос: теперь он делает то, что вы ожидали от него? –
Да, он делает так, как ожидалось – nlper