Недавно я написал немного кода, чтобы справиться с этим, он доступен в моей ветке атрибута sidekiq-status. Вы можете увидеть его, или использовать его здесь: https://github.com/Robinson7D/sidekiq-status
(Вы должны использовать это в качестве git:
информации в Gemfile к, в настоящее время, пока главный форк проекта не реализует это)
Чтобы использовать его , сначала вы храните job_identifier:
job_identifier = MyWorker.perform_at(3.hours.from_now, 'mike', 1)
И если вы хотите, чтобы уничтожить его, вы вызываете метод Sidekiq :: Status.cancel:
Sidekiq::Status.cancel job_identifier
Редактировать: С момента написания этого сообщения мой код был принят в основной вилке Sidekiq :: Статус - https://github.com/utgarda/sidekiq-status. Вам больше не нужно использовать свою вилку. На развилке Utgarda ты бы вызвать его по телефону запланированными, вместо того, чтобы отменить:
Sidekiq::Status.unschedule job_identifier
Далее: Вы можете также удалять задания, используя стандартный Sidekiq камень, как описано здесь: https://github.com/mperham/sidekiq/wiki/API (хотя для их методов вам требуется UNIX-метка когда задание запланировано - вы не можете удалить только с идентификатором задания, если вы хотите удалить задание без отметки времени, метод Sidekiq :: Status может быть прав для вас).
Однако вместо пути они обрисовать в вики я бы рекомендовал что-то вдоль линий Sidekiq::ScheduledSet.new().delete(unix_timestamp, jid)
, если вы хотите удалить только одну работу.)