我正在 Django 中构建一个推送通知服务器。
我要构建的第一步是每隔 1 分钟左右重复轮询我选择的 URL。
我无法弄清楚我需要哪些工具来完成这项工作。
我收集到我需要 Django,Python APNS 包之一,还有什么?
我可以使用请求库(人类库的 HTTP 请求)实际每分钟进行一次轮询吗?还是我需要一个 cron 工作?我会很感激某种游戏计划。我不知道如何每分钟调用相同的 URL 并让它在后台运行。
谢谢!
我正在 Django 中构建一个推送通知服务器。
我要构建的第一步是每隔 1 分钟左右重复轮询我选择的 URL。
我无法弄清楚我需要哪些工具来完成这项工作。
我收集到我需要 Django,Python APNS 包之一,还有什么?
我可以使用请求库(人类库的 HTTP 请求)实际每分钟进行一次轮询吗?还是我需要一个 cron 工作?我会很感激某种游戏计划。我不知道如何每分钟调用相同的 URL 并让它在后台运行。
谢谢!
如果您需要做的只是向 URL 发送 GET 请求,那么 cron + curl 将为您工作。将以下行添加到您的 crontab(如何):
* * * * * /usr/bin/curl --silent --compressed http://path.to/the/url
只要您的服务器启动,它将每分钟轮询一次 URL。
如果您想将轮询与 Django 集成,请查看django-celery,这是 Python 和 Django 的后台任务队列。先按照Celery 的 Django 安装指南,再看看这篇博文,讲讲如何使用 celery 作为 cron 的替代品。
对于您的用例,您可以将博客的示例任务替换为
import requests
from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(hour="*", minute="*", day_of_week="*"))
def test():
response = requests.get('https://path.to/the/url/')
process(response)