芹菜任务和xmpp

2024-06-24 13:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个芹菜任务,需要启动一个xmpp时,工人启动,但它并不真正工作

from celery import Celery
from MyXmpp import MyXmpp

celery = Celery('myxmpp')
celery.config_from_object('celeryconfig')

myjabber = MyXmpp()

@celery.task 
def worker_send_jabber(message):
   myjabber.send_admin_xmpp(message)

如果我这样做,它只启动xmpp,而不启动worker/task。如何让celeri初始化xmpp,然后通过它发送消息。我不想它一直连接和断开。只要worker正在运行,xmpp客户机就应该是在线的。在


Tags: fromimportsendconfigmessagetaskxmppcelery
1条回答
网友
1楼 · 发布于 2024-06-24 13:47:06

有几种方法可以做到这一点,常见的方法是:

_client = None

def get_client():
    global _client
    if _client is None:
        _client = MyXmpp()
    return _client

@celery.task
def send_jabber(message):
    get_client().send_admin_xmpp(message)

但有些人可能更喜欢这个版本:

^{pr2}$

相关问题 更多 >