豆茎管食用方法

问题描述

我正在使用 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