如何提高celery beat中的自动(每3秒)调用,celery 工人与redis?

68bkxrlz  于 2021-06-07  发布在  Redis
关注(0)|答案(0)|浏览(196)

我使用celery beat、worker和redis作为代理来调度任务并在后台调用特定函数。通话间隔为3秒,每3秒可能有多个通话。

def theFunction(arg1, arg2):
    obj = Model.objects.get(id=arg1)
    # call to a Modbus server
    result = Modbus.call(ip=obj.ip, obj.port) # just an example
    Data.objects.create(value=result)

我从django政府开始 celery-beat-schedule ,所有要使用不同id调用此函数的任务。
我使用supervisor分别自动化命令:

celery -A project worker --log-level=info
celery -A project beat --log-level=info

服务器是16gb的ram,当redis运行时,它会消耗高达14gb的ram,服务器会变慢。

当我使用 celery purge 为了杀死所有任务,我有时会看到队列中有100多万个任务。
如何改进这一点,每3秒就有一个结果以图形形式显示实时数据。如果有其他技术,我可以使用,让我知道。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题