向 Django 添加后台任务

问题描述

我不知道我是否在这里选择了一个好的方法。事实上,我很有可能完全错了。

在我的 Django 应用程序中,我需要与 Twitter API 建立连接,以不断获取所需的推文。为此,我使用

编写了一个脚本
def connect():
    response = requests.get(
        "https://api.twitter.com/2/tweets/search/stream",headers=headers,stream=True,)
    for response_line in response.iter_lines():
        if response_line:
            json_response = json.loads(response_line)
            print(json.dumps(json_response,indent=4,sort_keys=True))

问题是,我不知道在 Django 中如何以及在何处调用此函数。 这是我目前发现的:

  • 这个函数阻塞了它的调用者的流程,所以它需要
    并发执行,无论是作为进程还是线程。
  • 为了执行这样的函数,也称为后台任务, 我需要使用复杂的选项,例如 Celery,或者 轻量级库,例如 DjangoBackgroundTasks
  • 显然,我使用了 DjangoBackgroundTasks 并安装了它。但是现在有一些问题我无法解决。 首先,我应该在代码中的哪个位置调用我的 connect() 函数? 我见过人们在控制台中调用它,但这不是我想要做的,我需要调用它并执行它除了主要的 Django 应用程序。

P.S 我见过如下链接这样的实现,但老实说,它们超出了我的水平,我无法弄清楚代码是如何工作的。 https://github.com/michaelbrooks/django-twitter-stream/tree/master/twitter_stream

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...