我维护了一个用Django REST构建的REST,在内部,它会抓取几个网页来检索一堆信息。
我对每一个端点都进行了测试,检查刮板是否仍在工作。他们实际上与页面连接,并检查源代码是否保持不变,并且基本上一切都很好。
我想每天运行这些测试几次,当任何这些刮板失败时,我都会收到通知。我不知道该怎么处理这个问题。
我正在寻找一种方法,允许我:
我一直在研究CI,但我不确定这是否是更好的方法。
发布于 2018-08-31 14:14:21
如果您已经有了一个脚本--执行测试并通知您(例如,通过电子邮件或Pushover,在Python中的实现并不太难),则设置一个cron作业:
打开终端并键入crontab -e
,如果需要,请选择编辑器,并添加以下行:
* */X * * * python /path/to/testscript.py
这里X应该被你想要测试的频率所代替。例如,如果您编写3而不是X,那么您的脚本将每3小时执行一次。
发布于 2018-08-31 16:41:29
你可以试试django-crontab。
settings
模块进行配置。manage.py
集成,可以轻松地添加、删除和显示crons。注意事项:Django >= 1.8
的工作
编辑
示例配置和使用:
pip
:pip install django-crontab
安装INSTALLED_APPS
模块中添加settings
。
INSTALLED_APPS = ( 'django_crontab', ... )
crons.py
的模块(您可以将它命名为任意)。示例路径/path/to/project/<app_name>/crons.py
**)**:( crons.py )
from .models import FooModel
def foo_scheduler():
# update Foo's bar on each invocation
foos = FooModel.objects.all()
for foo in foos:
foo.bar += 42
foo.save()
settings
中注册cron。settings.py
...
CRONJOBS = (
# this will recur every 5 mins
('*/5 * * * *', '<app_name>.crons.foo_scheduler'),
)
...
python manage.py crontab add
添加到crontab。python manage.py crontab remove
删除。python manage.py crontab show
。请参阅其他这里的配置选项。
https://stackoverflow.com/questions/52117056
复制相似问题