Task Supervisors

This is more of a question on the difference between Elixir’s task supervisor and Ruby’s sidekiq - Typically when backgrounding a job via sidekiq, it is recommended to pass ids rather than full objects because of the way sidekiq serializes. (see Best Practices · sidekiq/sidekiq Wiki · GitHub). Is this an issue we need to worry about with the TaskSupervisor, or is it common to pass full objects?

To your specific question: you can pass anything to a Task because it doesn’t go through any persistent storage etc

HOWEVER

That’s also why TaskSupervisor isn’t AT ALL comparable to a job-scheduling system like Sidekiq; it doesn’t have any of the features (durability, retries, etc) that you’d expect.

Oban is a better comparison to Sidekiq, and in that case similar restrictions apply because the job’s args are put into a Postgres JSONB column.

2 Likes