使用Python和Celery如何传入自定义参数



我有一个Celery任务,我使用celery -A tasks worker --loglevel=info在本地运行,有时它在实时服务器上运行。

@app.task
def example_task_calling_api():
      url = "http://127.0.0.1:8000/" 
      #  url = "http://www.example.com/api/"
      content = requests.get(url)
      #Do something with content etc

目前,我根据运行的环境取消对url的注释。

我的问题是,我如何传递到芹菜设置或额外的args中,以便设置正确的URL?

PS。。。我的意思不是将args传递给任务,即task(123),而是在启动芹菜时设置某种系统范围的变量。

i.e. celery -A tasks worker --loglevel=info -LOCALDEV

一种方法是将url设置为环境变量,并使用python os.environ查看它是否已设置和/或设置默认值。

如果你有多个变量想要根据你的env进行配置:例如:demo、develop、production等等,你可以使用python文件并将你的所有变量存储在其中。然后当你的应用程序启动时,你可以根据命令行参数或env变量选择正确的设置文件。

以上建议是django框架如何处理您的问题。

相关内容

  • 没有找到相关文章