* Mojolicious version: 7.39
* Perl version: v5.24.9
* Operating system: Linux AND 2.6.32-504.23.4.el6.x86_64

### Steps to reproduce the behavior
I'm using Mojo::IOLoop->recurring to schedule a HTTP get request every 10s. 
However, from the log file, it seems the IOLoop is starting more than 1 job 
at the same time. Sometimes, there are 2 or 3 or 4 jobs running at the same 
time. 

Code: 
```  
Mojo::IOLoop->recurring(
        10 => sub {
            my $task    = 'pull_reservation';
            my $backend = $self->minion->backend;

            my $inactive_batch
                = $backend->list_jobs( 0, -1, { state => 'inactive', task 
=> $task, queue => 'default' } );
            my $active_batch = $backend->list_jobs( 0, -1, { state => 
'active', task => $task, queue => 'default' } );

            if ( ( !@$inactive_batch ) && ( !@$active_batch ) ) {
                $self->minion->enqueue( $task => [], { priority => 1 } );
            }

        }
    );
```

### Expected behavior
IOLoop should only be starting one job at the time. 

### Actual behavior
IOLoop somestimes start more than 1 job. From the log file, it is starting 
2 -4 jobs. 

###Content from log file: 
```
[Wed Nov 22 11:02:35 2017] [info]  job completed with 0 reservations with 
job_id 244828 .
[Wed Nov 22 11:02:35 2017] [info]  job completed with 0 reservations with 
job_id 244827 .
[Wed Nov 22 11:02:35 2017] [info]  job completed with 0 reservations with 
job_id 244829 .
[Wed Nov 22 11:02:42 2017] [info]  job completed with 0 reservations with 
job_id 244833 .
[Wed Nov 22 11:02:42 2017] [info]  job completed with 0 reservations with 
job_id 244832 .
[Wed Nov 22 11:02:42 2017] [info]  job completed with 0 reservations with 
job_id 244831 .
[Wed Nov 22 11:02:42 2017] [info]  job completed with 0 reservations with 
job_id 244830 .
[Wed Nov 22 11:02:54 2017] [info]  job completed with 0 reservations with 
job_id 244836 .
[Wed Nov 22 11:02:54 2017] [info]  job completed with 0 reservations with 
job_id 244834 .
```

I've also checked the details of each parallel job, they have exactly the 
same create time.

```
 ./script/app.pl minion job  285950
{
  "args" => [],
  "attempts" => 1,
  "children" => [],
  "created" => "2017-11-22T01:25:39Z",
  "delayed" => "2017-11-22T01:25:39Z",
  "finished" => "2017-11-22T01:25:44Z",
  "id" => 285950,
  "notes" => {},
  "parents" => [],
  "priority" => 1,
  "queue" => "default",
  "result" => {
    "uuid" => 246109
  },
  "retried" => undef,
  "retries" => 0,
  "started" => "2017-11-22T01:25:43Z",
  "state" => "finished",
  "task" => "pull_reservation",
  "worker" => 157
}
 ./script/app.pl minion job  285951
{
  "args" => [],
  "attempts" => 1,
  "children" => [],
  "created" => "2017-11-22T01:25:39Z",
  "delayed" => "2017-11-22T01:25:39Z",
  "finished" => "2017-11-22T01:25:44Z",
  "id" => 285951,
  "notes" => {},
  "parents" => [],
  "priority" => 1,
  "queue" => "default",
  "result" => {
    "uuid" => 246112
  },
  "retried" => undef,
  "retries" => 0,
  "started" => "2017-11-22T01:25:43Z",
  "state" => "finished",
  "task" => "pull_reservation",
  "worker" => 157
}

```
While doing trouble shooting, I started using IOLoop->singleton, but it 
didn't solve this problem :( 

Any pointers are highly appreciated. 

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to