getsentry / getsentry/sentry-python
Crons: Celerybeat integration provides invalid Crontab schedule
- Vorherrschende Sprache
- Python
- Sterne
- 2.2k
- Forks
- 669
- Ø Merge
- 1 T. 1 Std.
- Gemergte PRs (30 T.)
- 213
Beschreibung
### How do you use Sentry?
Sentry Saas (sentry.io)
### Version
2.3.1
### Steps to Reproduce
Create a new Celery task with a crontab schedule of "0 0 * * saturday". The monitor for the task won't be upserted in Crons.
### Expected Result
The monitor and check-ins should be created in Crons.
### Actual Result
This happens because `0 0 * * saturday` is not a valid crontab schedule, but it is a [valid task schedule](https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html#crontab-schedules) in Celery.
This is the complete payload that has failed validation on our end:
```json
{
"check_in_id": "82f57c609739414a8e21a88165fd52d8",
"contexts": {
"trace": {
"trace_id": "8e424a9d5c7b462b8ccb638b3b9c98cc"
}
},
"duration": 1602.9272508621216,
"environment": "prod",
"monitor_config": {
"schedule": {
"type": "crontab",
"value": "0 0 * * saturday"
},
"timezone": "UTC"
},
"monitor_slug": "schedule-weekly-organization-reports-new",
"status": "ok"
}
```
Here's the definition for the task: https://github.com/getsentry/sentry/blob/d92153e4f39810ed5b91a1e5e340a51e3cf507ec/src/sentry/conf/server.py#L1112-L1116
Perhaps we can map these unique Celery schedule definitions to a valid Crontab? Celery also supports [solar schedules](https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html#solar-schedules
), so not sure what we want to do there.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.