芹菜在哪里存储任务功能?
Where celery stores task functions?
有一个通过 celery+kombu+Oracle 运行周期性任务的 Django 应用程序。我花了一些时间,直到注意到要更改任务代码需要重新启动 celery worker,而不是 Django 服务器 (uWSGI)。
问题是,celery 将代码存储在哪里?某种缓存或什么?
Celery 系统由 1 个或多个(通常 python)进程组成,这些进程将 methods/tasks 加载到内存中。
这与启动交互式 shell 相同。如果你这样做:
>>> from spam import eggs
eggs
会分配到一个内存槽。如果您编辑 eggs
,则必须重新启动 shell 才能看到更改。
Celery 运行多个工作进程,与 django 服务器进程分开。
这些进程将 python 代码加载到内存中并执行它。他们继续 运行 直到关闭。
如果您更新磁盘上的 python 代码,运行 进程将不会获取更改 - 您将需要重新启动它们。
有一个通过 celery+kombu+Oracle 运行周期性任务的 Django 应用程序。我花了一些时间,直到注意到要更改任务代码需要重新启动 celery worker,而不是 Django 服务器 (uWSGI)。
问题是,celery 将代码存储在哪里?某种缓存或什么?
Celery 系统由 1 个或多个(通常 python)进程组成,这些进程将 methods/tasks 加载到内存中。
这与启动交互式 shell 相同。如果你这样做:
>>> from spam import eggs
eggs
会分配到一个内存槽。如果您编辑 eggs
,则必须重新启动 shell 才能看到更改。
Celery 运行多个工作进程,与 django 服务器进程分开。 这些进程将 python 代码加载到内存中并执行它。他们继续 运行 直到关闭。 如果您更新磁盘上的 python 代码,运行 进程将不会获取更改 - 您将需要重新启动它们。