Task Running in wrong time

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
Hace 9 años
Hi there!

I have noticed that all tasks run after an application restart, either by nop admin's menu or by IIS pool restart.

The tasks should verify their last-run-time and make the calculations to auto start or not after nop restart.

This is happening in my 3.3 nop.

Can you check?

Ivan.
Hace 9 años
Hi Ivan,

Everything works fine. We already verify last-run-time. Please have a look at the \Libraries\Nop.Services\Tasks\TaskManager.cs file
Hace 9 años
I see.

But even with the time check, all tasks run once after the restart, then they start running in their specific time configuration correctly.

I'll debug here to get more evidence.
Hace 9 años
No, they are not run after restart only if specified "run period" is not passed since the last start
Hace 9 años
Hi!

The problem is here:


            var notRunTasks = scheduleTasks
                .Where(x => x.Seconds >= _notRunTasksInterval)
                .Where(x => !x.LastStartUtc.HasValue || x.LastStartUtc.Value.AddSeconds(_notRunTasksInterval) <       DateTime.UtcNow)
                .ToList();


You compare the LastStartUtc with _notRunTasksInterval, that is 1800 seconds, and you should add the time configured in task, so this way, all my tasks are selected and are started one, by next code.

Check it, please.

Ivan.
Hace 9 años
It's by design. nopCommerce finds task with "run period" set to more than 30 minutes and which were not run during last 30 minutes. It's not related to the issue you described in the original post.
Hace 9 años
Please describe a complete list of steps to reproduce the issue (its "run period", etc)
Hace 9 años
a.m. wrote:
It's by design. nopCommerce finds task with "run period" set to more than 30 minutes and which were not run during last 30 minutes.


This is what causing the "issue". All tasks ran exactly on their time (some 86400, others more), but after nop restart, that code detect that "were not run during last 30 minutes" and run them again.

If you are able to specify the run-time of a task, it cant run always when nop restart else if the run-time is over, or the task could do something wrong. Else we have to specify an exact hour or another time check inside each task to block the task execution, and then, specify a run-time is useless.

What do you think?

Ivan.
Hace 9 años
I see now. It's related to tasks with "run period" more than 30 minutes. Thanks. I've just created a work item
Hace 9 años
Fixed. Please see changeset 3f7a64c00e72. Thanks again for reporting
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.