getsentry / getsentry/sentry-python

Crons: Celerybeat integration provides invalid Crontab schedule

Offen
#3,131 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Checks Crons Feature Integration: Celery Python
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

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.