Python Django与多台服务器对话

Python Django与多台服务器对话,python,django,database,celery,scheduled-tasks,Python,Django,Database,Celery,Scheduled Tasks,外面有很多信息,老实说,有点太多了,我有点迷路了 我的web应用程序必须完成一些资源密集型任务。标准设置立即在另一台服务器上安装应用程序静态/媒体以进行托管。我想做的是设置芹菜,这样我就可以为这些资源密集型任务调用task.delay 我想将整个独立服务器的资源专用于这些资源密集型任务 这里有一个问题:我如何以这种方式设置芹菜,以便从我的主服务器(应用程序所在的位置)将对.delay的调用从应用程序发送到这些服务器 注意:这些函数将把数据回退到数据库/影响模型,因此数据完整性在这里很重要。那

外面有很多信息,老实说,有点太多了,我有点迷路了

我的web应用程序必须完成一些资源密集型任务。标准设置立即在另一台服务器上安装应用程序静态/媒体以进行托管。我想做的是设置芹菜,这样我就可以为这些资源密集型任务调用
task.delay

  • 我想将整个独立服务器的资源专用于这些资源密集型任务
这里有一个问题:我如何以这种方式设置芹菜,以便从我的主服务器(应用程序所在的位置)将对
.delay
的调用从应用程序发送到这些服务器

注意:这些函数将把数据回退到数据库/影响模型,因此数据完整性在这里很重要。那么,在保持完整性的同时,如何将检索到的数据(假设上述是可能的…)从单独的服务器发送回数据库

  • 这可能吗?如果可能的话,我该怎么开始-信息过载
  • 如果不是,我应该做什么/我做错了什么

  • 芹菜的全部目的就是以这种方式工作,即作为分布式任务服务器。您可以在任意多台机器上启动工作人员,代理(即rabbitmq)将根据需要分发这些工作人员


    不过,我不确定您对数据完整性的要求。数据不会“发送回”数据库;workers直接连接到数据库的方式与Django代码的其余部分完全相同。

    Right应该已经澄清了不同机器上的“旋转workers…”我遇到了问题。我是否只是将每个特定应用程序/任务的代理设置为指向此服务器?至于数据。。。cron作业将运行刮取数据以更新模型,刮取的初始数据也将延迟。我的意思是传递一个模型实例,然后通过芹菜任务调用delay来更新它,这将是一个问题。我仍然不太确定你在问什么。您没有特定应用程序的代理;您有一个代理和多个worker,但每个worker通常都有代码的完整副本,可以运行任何任务。在数据上,不应该传递实例,而应该传递ID;您的任务代码将按id从数据库中获取实例,更新它,然后将其保存回数据库。谢谢您的建议。您是否有关于设置经纪人和员工的参考/教程的链接?从问题/评论中可以明显看出,我不知道自己在做什么。