我刚开始做几天的戏剧实验,我不会让一个工人在一个(简单的)剧本中工作
test.py
import dramatiq
from dramatiq.brokers.redis import RedisBroker
from dramatiq.results.backends import RedisBackend
from dramatiq.results import Results
from dramatiq.worker import Worker
redis_broker = RedisBroker(host="127.0.0.1", port=6379)
results_backend = RedisBackend(url="redis://127.0.0.1:6379")
redis_broker.add_middleware(Results(backend=results_backend))
dramatiq.set_broker(redis_broker)
worker = Worker(
broker=redis_broker
)
worker.start()
@dramatiq.actor(queue_name="default", max_retries=1, store_results=True)
def print_hello_world():
print("Hello World!")
print_hello_world.send()
结果(Redis):
127.0.0.1:6379> keys *
1) "dramatiq:default.msgs"
2) "dramatiq:default"
3) "dramatiq:__heartbeats__"
但从test.py文件夹中启动戏剧性的deamon时:
$ dramatiq test
结果正是我所期望的
结果(Redis)
127.0.0.1:6379> keys *
1) "3f11649148820d957b2945da46b3c2b7"
2) "dramatiq:__heartbeats__"
工人似乎没有以这种方式接收信息。在互联网上很难找到在脚本中设置工作者的例子
有人能帮我完成这项工作吗
您可以从这个链接https://gitlab.com/bersace/flask-dramatiq/-/blob/master/flask_dramatiq.py#L311引用
相关问题 更多 >
编程相关推荐