我正在开发一个Django项目。
我想自动同步类。
我的代码:
from datetime import timedelta
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
'sync-classes': {
'task': 'scheduler.tasks.sync_classes',
'schedule': crontab(hour='0', minute=0),
}
CELERY_ENABLE_UTC = False
CELERY_TIMEZONE = 'Europe/London'它在伦敦时区工作。
每个类都有不同的时区。我希望计划能够根据相关的类时区自动运行。
在sync_classes()方法中,我获取所有类并在伦敦时区同步它。
问题:如何根据其时区同步每个类?
发布于 2018-01-04 07:10:35
当涉及Django/芹菜部分时,这段代码是未经测试的,但是下面是这样的想法:
utc_now = pytz.utc.localize(datetime.datetime.utcnow())“探测”(或引用)更改为几个手动值,如utc_now = pytz.utc.localize(datetime.datetime(year=2018, month=1, day=4, hour=4, minute=1, second=0))now在collected_tz_names列表中午夜的时区之后,运行同步方法。假设您需要同步的对象是User,对吗?并且您的User模型有一个属性tz_name,它指示每个用户的时区。在这种情况下,这应该可以做到:
User.objects.filter(tz_name__in=collected_tz_names):user.synchronize()中的用户请记住,在日光节省时间开关中,您可能会同步两次。
https://stackoverflow.com/questions/48089414
复制相似问题