django-simpletask5 0.2.2__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/PKG-INFO +7 -1
  2. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/README.md +6 -0
  3. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/cronjob_registry.py +2 -1
  4. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/commands/django_simpletask_crontab.py +3 -1
  5. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5.egg-info/PKG-INFO +7 -1
  6. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/pyproject.toml +1 -1
  7. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/LICENSE +0 -0
  8. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/__init__.py +0 -0
  9. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/admin.py +0 -0
  10. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/apps.py +0 -0
  11. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/__init__.py +0 -0
  12. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/defaults.py +0 -0
  13. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/executor_scanner.py +0 -0
  14. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/lock.py +0 -0
  15. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/message_queue.py +0 -0
  16. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/publisher.py +0 -0
  17. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/signals.py +0 -0
  18. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/core/worker_registry.py +0 -0
  19. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/dashboards.py +0 -0
  20. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/__init__.py +0 -0
  21. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/archive.py +0 -0
  22. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/base.py +0 -0
  23. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/bash_script.py +0 -0
  24. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/exceptions.py +0 -0
  25. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/loader.py +0 -0
  26. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/ping_pong.py +0 -0
  27. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/python_script.py +0 -0
  28. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/retry_timeout.py +0 -0
  29. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/simple_request.py +0 -0
  30. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/executors/status_check.py +0 -0
  31. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  32. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  33. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/__init__.py +0 -0
  34. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/commands/__init__.py +0 -0
  35. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/commands/django_simpletask_archive.py +0 -0
  36. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/commands/django_simpletask_executor.py +0 -0
  37. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/management/commands/django_simpletask_sync_cronjobs.py +0 -0
  38. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0001_initial.py +0 -0
  39. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0002_taskexecution_done_tasks_count_and_more.py +0 -0
  40. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0003_alter_cronjob_options_remove_cronjob_name_and_more.py +0 -0
  41. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0004_alter_cronjob_is_modified_by_user.py +0 -0
  42. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0005_alter_cronjob_is_modified_by_user_help.py +0 -0
  43. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0006_alter_cronjob_options_alter_taskexecution_created_at_and_more.py +0 -0
  44. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0007_rename_task_model_to_executor_class_in_stat.py +0 -0
  45. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0008_taskexecution_pickup_timeout_seconds.py +0 -0
  46. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/0009_add_cronjob_app_label.py +0 -0
  47. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/migrations/__init__.py +0 -0
  48. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/models.py +0 -0
  49. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/services/__init__.py +0 -0
  50. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/services/archive.py +0 -0
  51. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/static/django_simpletask5/css/dashboard.css +0 -0
  52. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5/static/django_simpletask5/js/select2_executor.js +0 -0
  53. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5.egg-info/SOURCES.txt +0 -0
  54. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5.egg-info/dependency_links.txt +0 -0
  55. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5.egg-info/requires.txt +0 -0
  56. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/django_simpletask5.egg-info/top_level.txt +0 -0
  57. {django_simpletask5-0.2.2 → django_simpletask5-0.2.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-simpletask5
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Lightweight async task execution framework for Django
5
5
  Author-email: rRR0VrFP <rrr0vrfp@qq.com>
6
6
  Maintainer-email: rRR0VrFP <rrr0vrfp@qq.com>
@@ -368,6 +368,8 @@ python manage.py django_simpletask_sync_cronjobs
368
368
 
369
369
  同步后,用户可以在 Django Admin 中查看和修改 Cron 任务,被手动修改过的任务不会在后续同步中被覆盖(`is_modified_by_user` 标记保护)。
370
370
 
371
+ > 注意:cron 表达式按 Django 的 `TIME_ZONE` 设置对应的本地时间解释。`USE_TZ=True` 时仍以本地时间计算触发时刻(存储为 UTC),例如 `TIME_ZONE = 'Asia/Shanghai'` 下 `30 14 * * *` 表示每天 14:30 本地时间触发。
372
+
371
373
  ## 内置执行器
372
374
 
373
375
  | 执行器 | 说明 |
@@ -392,6 +394,10 @@ Worker 消费消息 → 获取分布式锁 → 加载执行器 → 执行并保
392
394
 
393
395
  ## Releases
394
396
 
397
+ ### 0.2.3
398
+
399
+ - **Cron 时区修复** — cron 表达式改为按 Django `TIME_ZONE` 配置的本地时间解释,不再固定按 UTC 计算。`USE_TZ=True` 时使用 `timezone.localtime(now())` 作为 croniter 基准时间,非 UTC 时区下定时任务不再偏移;`USE_TZ=False` 保持原有本地时间行为不变
400
+
395
401
  ### 0.2.2
396
402
 
397
403
  - **抑制异步消息** — 新增 `_skip_publish` 机制,创建/更新/删除 Task 时可通过 `skip_publish()` 方法、`save(skip_publish=True)`、构造时传入 `skip_publish=True` 等方式禁止触发 RabbitMQ 消息通知
@@ -328,6 +328,8 @@ python manage.py django_simpletask_sync_cronjobs
328
328
 
329
329
  同步后,用户可以在 Django Admin 中查看和修改 Cron 任务,被手动修改过的任务不会在后续同步中被覆盖(`is_modified_by_user` 标记保护)。
330
330
 
331
+ > 注意:cron 表达式按 Django 的 `TIME_ZONE` 设置对应的本地时间解释。`USE_TZ=True` 时仍以本地时间计算触发时刻(存储为 UTC),例如 `TIME_ZONE = 'Asia/Shanghai'` 下 `30 14 * * *` 表示每天 14:30 本地时间触发。
332
+
331
333
  ## 内置执行器
332
334
 
333
335
  | 执行器 | 说明 |
@@ -352,6 +354,10 @@ Worker 消费消息 → 获取分布式锁 → 加载执行器 → 执行并保
352
354
 
353
355
  ## Releases
354
356
 
357
+ ### 0.2.3
358
+
359
+ - **Cron 时区修复** — cron 表达式改为按 Django `TIME_ZONE` 配置的本地时间解释,不再固定按 UTC 计算。`USE_TZ=True` 时使用 `timezone.localtime(now())` 作为 croniter 基准时间,非 UTC 时区下定时任务不再偏移;`USE_TZ=False` 保持原有本地时间行为不变
360
+
355
361
  ### 0.2.2
356
362
 
357
363
  - **抑制异步消息** — 新增 `_skip_publish` 机制,创建/更新/删除 Task 时可通过 `skip_publish()` 方法、`save(skip_publish=True)`、构造时传入 `skip_publish=True` 等方式禁止触发 RabbitMQ 消息通知
@@ -38,7 +38,8 @@ def _compute_next_run_time(cron_expression, base=None):
38
38
  except ImportError:
39
39
  return None
40
40
  if base is None:
41
- base = timezone.now()
41
+ now = timezone.now()
42
+ base = timezone.localtime(now) if timezone.is_aware(now) else now
42
43
  try:
43
44
  cron = croniter(cron_expression, base)
44
45
  return cron.get_next(datetime)
@@ -182,5 +182,7 @@ class Command(BaseCommand):
182
182
  transaction.on_commit(_publish_cronjob)
183
183
 
184
184
  from django_simpletask5.core.cronjob_registry import _compute_next_run_time
185
- cronjob.next_run_time = _compute_next_run_time(cronjob.cron_expression, base=timezone.now())
185
+ now = timezone.now()
186
+ base = timezone.localtime(now) if timezone.is_aware(now) else now
187
+ cronjob.next_run_time = _compute_next_run_time(cronjob.cron_expression, base=base)
186
188
  cronjob.save(update_fields=['next_run_time'])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-simpletask5
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Lightweight async task execution framework for Django
5
5
  Author-email: rRR0VrFP <rrr0vrfp@qq.com>
6
6
  Maintainer-email: rRR0VrFP <rrr0vrfp@qq.com>
@@ -368,6 +368,8 @@ python manage.py django_simpletask_sync_cronjobs
368
368
 
369
369
  同步后,用户可以在 Django Admin 中查看和修改 Cron 任务,被手动修改过的任务不会在后续同步中被覆盖(`is_modified_by_user` 标记保护)。
370
370
 
371
+ > 注意:cron 表达式按 Django 的 `TIME_ZONE` 设置对应的本地时间解释。`USE_TZ=True` 时仍以本地时间计算触发时刻(存储为 UTC),例如 `TIME_ZONE = 'Asia/Shanghai'` 下 `30 14 * * *` 表示每天 14:30 本地时间触发。
372
+
371
373
  ## 内置执行器
372
374
 
373
375
  | 执行器 | 说明 |
@@ -392,6 +394,10 @@ Worker 消费消息 → 获取分布式锁 → 加载执行器 → 执行并保
392
394
 
393
395
  ## Releases
394
396
 
397
+ ### 0.2.3
398
+
399
+ - **Cron 时区修复** — cron 表达式改为按 Django `TIME_ZONE` 配置的本地时间解释,不再固定按 UTC 计算。`USE_TZ=True` 时使用 `timezone.localtime(now())` 作为 croniter 基准时间,非 UTC 时区下定时任务不再偏移;`USE_TZ=False` 保持原有本地时间行为不变
400
+
395
401
  ### 0.2.2
396
402
 
397
403
  - **抑制异步消息** — 新增 `_skip_publish` 机制,创建/更新/删除 Task 时可通过 `skip_publish()` 方法、`save(skip_publish=True)`、构造时传入 `skip_publish=True` 等方式禁止触发 RabbitMQ 消息通知
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "django-simpletask5"
7
- version = "0.2.2"
7
+ version = "0.2.3"
8
8
  description = "Lightweight async task execution framework for Django"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}