我正在努力django-cron工作,但没有。我按照此处的说明设置了我的 cron,但问题是我的作业仅在我python manage.py runcrons在命令行上键入时运行,并且该作业不是每 5 分钟运行一次。我不知道还能做什么。我已经阅读了其他文件crontabs,chronograph但很困惑。我是将 crontabs 与 cron 或计时码表一起安装,还是仅使用 django-cron 就能让 cron 正常工作。还有我如何让我的工作自动运行。在此处的文档中,我阅读了Now everytime you run the management command python manage.py runcrons all the crons will run if required. Depending on the application the management command can be called from the Unix crontab as often as required. Every 5 minutes usually works for most of my applications.. 这是什么意思。我在这里错过了什么。我迷路了。帮助
设置.py
CRON_CLASSES = (
"myapp.views.MyCronJob", …Run Code Online (Sandbox Code Playgroud) 我很抱歉,如果它的基础知识,但我没有在互联网上找到任何比较这两种技术的答案。我应该如何决定何时使用哪个,因为两者都可以用于安排和处理周期性任务。
这是一篇文章所说的:
姜戈芹菜:
作业是在后台为您进行某些处理的任何应用程序的重要组成部分。如果您的工作是实时的,则可以使用 Django 应用程序 celery。
Django-cronjobs :
django-cronjobs 可用于调度 period_task,这是一个有效的作业。django-cronjobs 是一个简单的 Django 应用程序,它通过管理命令运行注册的 cron 作业。
谁能解释一下我应该何时选择哪一个和为什么之间的区别?另外我需要知道为什么在分布式计算时使用芹菜,为什么不使用 cron 作业
使用django站点的cron作业的常规方法是使用cron定期运行自定义管理命令.
但我发现了这个http://code.google.com/p/django-cron/
它如何工作,不需要cron?什么调用它进行民意调查?
如果它只是为http请求设置一个定期命中的地址,那么如果作业需要很长时间,那么服务器不会超时吗?
我在这篇文章中描述了完全相同的问题,但答案根本没有帮助.简而言之,我使用的是Tivix django-cron,cron的工作并没有定期运行.
为了说明问题,以下cron作业类旨在每运行一次运行runcrons命令时发送电子邮件.但事实上,它只发送一封电子邮件,而不是更多.这违背了cron的目的......我错过了什么?
class TestCron(CronJobBase):
schedule = Schedule(run_every_mins=1)
code = 'test_cron_philip'
def do(self):
send_mail('cron test', 'body is test body', 'coach_zhong@163.com',
['admin@dessert.webfactional.com'],fail_silently=False)
Run Code Online (Sandbox Code Playgroud) 我使用 django crontab 设置了一个 cron 作业。根据文档中的定义,我在 cron.py 中定义了一个测试作业,并在 settings.py 中将其定义为以 1 分钟间隔运行。
#cron.py
def test_cron_run():
print("\n\nHello World....!! ",timezone.now())
#settings.py
INSTALLED_APPS = [
'material.theme.cyan',
'material',
'material.admin',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'django_crontab',
]
CRONJOBS = [
('*/1 * * * *', 'myapp.cron.test_cron_run','>>'+os.path.join(BASE_DIR,'log/debug7.log')),
]
Run Code Online (Sandbox Code Playgroud)
我通过运行添加了 cron 作业python3 manage.py crontab add。此外,该作业也被添加,因为我可以看到我是否运行,python3 manage.py crontab show
但是我看不到正在生成的任何日志文件。有什么办法可以调试这个,操作系统日志之类的吗?
我想模仿 Gmail 的功能,您可以选择在Django中的某个时间(也许明天凌晨 3:34)发送电子邮件。
我查看了类似的内容django-crontab(https://pypi.org/project/django-crontab/)。
我想出了一个想法来django-crontab实现这一目标:
这感觉有点老套和过度设计。有没有更好的办法?谢谢!