[dispatcher] support minimal frequency

- Add an option to specify a minimal frequency the dispatcher should invoken SendFn
- Track the time the last SendFn was invoked
- When the last SendFn invoke time has been older than the minimal frequency, and the buffer is empty, invoken SendFn with a nil batch

Bug: 1031205
Change-Id: Ic877407c5e026b96fe0a455bfa61be589bacf9e5
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3426106
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Chan Li <chanli@chromium.org>
6 files changed
tree: 1ac9552773da08588f508186c0ef3dbe07cb55b5
  1. appengine/
  2. auth/
  3. auth_service/
  4. build/
  5. buildbucket/
  6. casviewer/
  7. cipd/
  8. client/
  9. cmdrunner/
  10. common/
  11. config/
  12. cv/
  13. dm/
  14. examples/
  15. gae/
  16. gce/
  17. grpc/
  18. hacks/
  19. hardcoded/
  20. led/
  21. logdog/
  22. luci_notify/
  23. lucicfg/
  24. lucictx/
  25. luciexe/
  26. machine-db/
  27. mailer/
  28. milo/
  29. mmutex/
  30. resultdb/
  31. scheduler/
  32. scripts/
  33. server/
  34. starlark/
  35. swarming/
  36. tokenserver/
  37. tools/
  38. tumble/
  39. vpython/
  40. web/
  41. .gitallowed
  42. .gitattributes
  43. .golangci.yml
  44. AUTHORS
  45. codereview.settings
  46. CONTRIBUTING.md
  47. CONTRIBUTORS
  48. go.mod
  49. go.sum
  50. LICENSE
  51. OWNERS
  52. PRESUBMIT.py
  53. README.md
  54. tools.go
  55. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoDoc

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

Contributing

Contributing uses the same flow as Chromium contributions.