问题描述
我正在使用 beanstalk 将消息放入管中,我想从我将在运行时启动的新 EC2 实例中使用它。我可以将消息放入管中,但我无法以任何方式使用它。
我执行了以下步骤进行测试:
文件:producer.py
#!/usr/bin/env python
import greenstalk
import json
import sys
beanstalkTube = 'tube-name'
beanstalkHost = 'host'
beanstalkPort = 11301
client = greenstalk.Client((beanstalkHost,beanstalkPort))
client.use(beanstalkTube)
client.put('message 1')
文件:consumer.py
#!/usr/bin/env python
import greenstalk
import json
import sys
beanstalkTube = 'tube-name'
beanstalkHost = 'host'
beanstalkPort = 11301
client = greenstalk.Client((beanstalkHost,beanstalkPort))
client.use(beanstalkTube)
job = client.reserve()
print("job_id:"+job.id)
print("job_body:"+job.body)
我想知道的另一件事是我应该如何使用 beanstalk 通过 shell 脚本将消息传递给新创建的 EC2 现货实例
解决方法
您将use
一个管子放入消息。
从管中读取,您watch
一个(或多个)管,当您调用 reserve
获取一个管时,服务器将返回一条消息
只会从监视列表中的管保留作业,该列表最初包含单个管,默认。您可以使用 watch
将管添加到监视列表中,并使用 ignore
将其删除。为方便起见,可以在创建客户端时使用 watch
参数进行设置。 https://greenstalk.readthedocs.io/en/stable/quickstart.html#consuming-jobs