Fix bad body encoding and allow list of intervals #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: Avoid empty string as body of task message when posting tasks
json_encode($body)could return empty string, so the task's JSON could contain"body": "", which is catastrophic - Celery can't decode that message and crashes - and the message is kept in the queue, causing crashes again and again.This could happen, for example, if any of the task arguments was a string that contained badly formed Unicode characters.
Now we:
JsonException.Feature: AsyncResult::get()'s interval argument can now be a list
E.g. for interval specified as
[0.1, 0.6, 10]we'll first wait 0.1s, then 0.6s, then 10s repeatedly, until the task is ready (or we time out).