任务执行时间迟了一秒钟

Open
#10 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
45/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
php
Domain
backend

Research direction

Start at Hyperf\Crontab\Strategy\Executor::execute and reproduce the */5 * * * * * schedule described in the issue. Trace the final timer callback delay and verify that executions occur at 0, 5, 10 seconds rather than 1, 6, 11 seconds; done means the observed timing matches the stated schedule.

Written by the indexing model from the issue text.

Description

比如*/5 * * * * *,本应该每5秒执行一次,也就是0秒、5秒、10秒...时间执行,实际时间为1秒、6秒、11秒...,跟踪了下代码,发现Hyperf\Crontab\Strategy\Executor的execute方法最后一行是$callback && $this->timer->after($diff > 0 ? $diff : 1, $callback);,不明白为什么这么设计,这不是跟预期不一致吗?

Dominant language
PHP
Stars
13
Forks
13
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from hyperf/crontab

All issues in hyperf/crontab

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.