Hook up the retryable tasks with hydra-notify

[?]
Aug 27, 2021, 1:53 AM
DHOKYWTSFNHR3KPRAFGMTWN6PFDY4F3AVQOOK7SYXTJLSGD5DE2AC

Dependencies

  • [2] IBXWOZCL ResultSet::TaskRetries: teach about saving tasks
  • [3] I7Q3M7V3 TaskDispatcher: Support re-queueing tasks, and dropping tasks after 100 failures.
  • [4] I7DFJWL6 hydra-notify: initial scratch take of prometheus events
  • [5] P4SME2BC Abstract over postgres' LISTEN/NOTIFY
  • [6] SWXGVPJN hydra-notify: extract runPluginsForEvent to a TaskDispatcher
  • [7] 32KJOERM Turn hydra-notify into a daemon
  • [8] 3AKZKWCR RunCommand: Test
  • [*] GMOI3OFS ResultSet::TaskRetries: add get_seconds_to_next_retry
  • [*] IE2PRAQU hydra-queue-runner: Send build notifications

Change contents

  • edit in src/lib/Hydra/Schema/ResultSet/TaskRetries.pm at line 9
    [2.41]
    [10.168]
    use Hydra::Task;
  • replacement in src/lib/Hydra/TaskDispatcher.pm at line 257
    [3.2645][3.2645:2698]()
    if ($task->{"record"}->{"attempts"} > 100) {
    [3.2645]
    [3.2698]
    if ($task->{"record"}->attempts > 100) {
  • edit in src/script/hydra-notify at line 103
    [4.2595]
    [4.99]
    my $taskretries = $db->resultset('TaskRetries');
  • replacement in src/script/hydra-notify at line 109
    [4.1057][4.1923:1975](),[4.125][4.1923:1975]()
    my $messages = $listener->block_for_messages();
    [4.1057]
    [4.1975]
    my $messages = $listener->block_for_messages($taskretries->get_seconds_to_next_retry());
  • edit in src/script/hydra-notify at line 132
    [4.3450]
    [4.3563]
    }
    my $task = $taskretries->getRetryableTask();
    if (defined($task)) {
    $task_dispatcher->dispatchTask($task);
  • edit in src/script/hydra-notify at line 138
    [4.3569]
    [11.3877]