As of now, the oneshot tasks are simply some form of sending messages, through a producer, to the appropriate queue.
As the oneshot tasks volume keep increasing (googlecode backup ingestion, gitorious backup ingestion, rehash, ...), and those tasks, like any other, can fail, this becomes important to permit some form of scheduling and rescheduling in case of failure.
Investigate the scheduler to improve this.
Note: There exists a branch oneshot-task in the swh-scheduler repository about this.