zenpulse-scheduler 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl

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.
@@ -0,0 +1,54 @@
1
+ # Generated by Django 5.2.6 on 2026-02-02 21:06
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ initial = True
9
+
10
+ dependencies = [
11
+ ]
12
+
13
+ operations = [
14
+ migrations.CreateModel(
15
+ name='ScheduleConfig',
16
+ fields=[
17
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+ ('job_key', models.CharField(help_text='Unique key identifier for the job (must match the registered job name).', max_length=255, unique=True)),
19
+ ('enabled', models.BooleanField(default=True)),
20
+ ('trigger_type', models.CharField(choices=[('interval', 'Interval'), ('cron', 'Cron')], default='interval', max_length=20)),
21
+ ('interval_value', models.IntegerField(blank=True, help_text='Value for interval trigger.', null=True)),
22
+ ('interval_unit', models.CharField(blank=True, choices=[('seconds', 'Seconds'), ('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks')], default='minutes', max_length=20, null=True)),
23
+ ('cron_minute', models.CharField(default='*', help_text='Cron minute (0-59 or *)', max_length=100)),
24
+ ('cron_hour', models.CharField(default='*', help_text='Cron hour (0-23 or *)', max_length=100)),
25
+ ('cron_day', models.CharField(default='*', help_text='Cron day of month (1-31 or *)', max_length=100)),
26
+ ('cron_month', models.CharField(default='*', help_text='Cron month (1-12 or *)', max_length=100)),
27
+ ('cron_day_of_week', models.CharField(default='*', help_text='Cron day of week (0-6 or mon,tue... or *)', max_length=100)),
28
+ ('max_instances', models.IntegerField(default=1, help_text='Maximum number of concurrently running instances allowed.')),
29
+ ('coalesce', models.BooleanField(default=True, help_text='Combine missed runs into one.')),
30
+ ('misfire_grace_time', models.IntegerField(default=60, help_text='Seconds after the designated run time that the job is still allowed to run.')),
31
+ ('log_policy', models.CharField(choices=[('none', 'None'), ('failures', 'Failures Only'), ('all', 'All Executions')], default='failures', max_length=20)),
32
+ ('updated_at', models.DateTimeField(auto_now=True)),
33
+ ],
34
+ ),
35
+ migrations.CreateModel(
36
+ name='JobExecutionLog',
37
+ fields=[
38
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
39
+ ('job_key', models.CharField(db_index=True, max_length=255)),
40
+ ('run_time', models.DateTimeField(auto_now_add=True)),
41
+ ('status', models.CharField(choices=[('success', 'Success'), ('fail', 'Fail')], max_length=10)),
42
+ ('duration_ms', models.FloatField(help_text='Execution duration in milliseconds')),
43
+ ('exception_type', models.CharField(blank=True, max_length=255, null=True)),
44
+ ('exception_message', models.TextField(blank=True, null=True)),
45
+ ('traceback', models.TextField(blank=True, null=True)),
46
+ ('hostname', models.CharField(blank=True, max_length=255, null=True)),
47
+ ('pid', models.IntegerField(blank=True, null=True)),
48
+ ],
49
+ options={
50
+ 'ordering': ['-run_time'],
51
+ 'indexes': [models.Index(fields=['job_key', 'status'], name='zenpulse_sc_job_key_c7a31a_idx'), models.Index(fields=['run_time'], name='zenpulse_sc_run_tim_b5c23a_idx')],
52
+ },
53
+ ),
54
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenpulse_scheduler
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: A DB-driven APScheduler for Django
5
5
  Classifier: Framework :: Django
6
6
  Classifier: Programming Language :: Python :: 3
@@ -9,8 +9,9 @@ zenpulse_scheduler/registry.py,sha256=TSvIFq4VgmtXjR77r5LbUh23J5uIHnHoWjyvzi-pQl
9
9
  zenpulse_scheduler/sync.py,sha256=KbqbFDuTLmct2s3XWHHKK8zIWGzFgw44xt7ZKqViXKM,2702
10
10
  zenpulse_scheduler/triggers.py,sha256=56ucYsxs5UA69802MC8nZAAgR1vpIaqx37RNd6UZRLk,1430
11
11
  zenpulse_scheduler/management/commands/run_zenpulse_scheduler.py,sha256=szJj2CV5avKxWi0DIxHiME-rOfqNuKUqwveSA7fS_yQ,915
12
+ zenpulse_scheduler/migrations/0001_initial.py,sha256=yFziHrLNyom8mulaos3DuoB_43WLxqKGBspBo96a-og,3665
12
13
  zenpulse_scheduler/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- zenpulse_scheduler-0.1.1.dist-info/METADATA,sha256=S-rcKnDxeh67Pnt5dSI-N6Bf_iuttaO4MzQKGb0B1to,310
14
- zenpulse_scheduler-0.1.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
15
- zenpulse_scheduler-0.1.1.dist-info/top_level.txt,sha256=6aLspn3Yg8Me-MY6p0DK4NCmWfmLy2j5jxnqOyM0XNo,19
16
- zenpulse_scheduler-0.1.1.dist-info/RECORD,,
14
+ zenpulse_scheduler-0.1.2.dist-info/METADATA,sha256=MZSJe_H7HH5ZwW-I9QMpHEK8TGVbTu0dV56zZY3iaDQ,310
15
+ zenpulse_scheduler-0.1.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
16
+ zenpulse_scheduler-0.1.2.dist-info/top_level.txt,sha256=6aLspn3Yg8Me-MY6p0DK4NCmWfmLy2j5jxnqOyM0XNo,19
17
+ zenpulse_scheduler-0.1.2.dist-info/RECORD,,