У меня есть два экземпляра aws ec2.Клиент работает на первом экземпляре ec2, а работник работает на втором экземпляре ec2.Но работник на втором экземпляре ec2 не отвечает на задание клиента и даже не выдает никакой ошибки.
client.py:
import python3_gearman as gearman
def check_request_status(job_request):
if job_request.complete:
print("Job %s finished! Result: %s - %s" % (job_request.job.unique, job_request.state, job_request.result))
elif job_request.timed_out:
print("Job %s timed out!" % job_request.unique)
elif job_request.state == JOB_UNKNOWN:
print("Job %s connection failed!" % job_request.unique)
gm_client = gearman.GearmanClient(['34.253.103.1:4730']) # 34.253.103.1 :- ip address of worker
completed_job_request = gm_client.submit_job("reverse", "Hello World!")
check_request_status(completed_job_request)
worker.py:
import python3_gearman as gearman
gm_worker = gearman.GearmanWorker(['46.51.130.13:4730']) # 46.51.130.13 :- ip address of client
def task_listener_reverse(gearman_worker, gearman_job):
print('Reversing string: ' + gearman_job.data)
return gearman_job.data[::-1]
# gm_worker.set_client_id is optional
gm_worker.set_client_id('python-worker')
gm_worker.register_task('reverse', task_listener_reverse)
# Enter our work loop and call gm_worker.after_poll() after each time we timeout/see socket activity
gm_worker.work()
Запустил снаряжение, используя команду ниже для обоих экземпляров:
sudo gearmand --listen=0.0.0.0 -d
Пожалуйста, предложите, что не так в приведенном выше методе / коде.