mborsetti / webchanges

webchanges anonymously checks web content (including images) and commands for changes, delivering instant notifications and AI-powered summaries to your favorite platform.
https://pypi.org/project/webchanges/
Other
37 stars 6 forks source link

[FEATURE] Job integer frequency (run job every Nth webchanges run) #52

Open drws opened 1 year ago

drws commented 1 year ago

Is your feature request related to a problem? Please describe. Some jobs need more checks than others (per time interval), which is impossible to achieve with a single webchanges instance.

Describe the solution you'd like A simple parameter that allowed a job to skip some runs would suffice to achieve different time periods. By analogy the parameter could also be called gear. If gear of the job is 1, it runs every time, second-gear jobs run every second time, and so on.

Describe alternatives you've considered Multiple instances of webchanges. Works, but is not a clean solution.

Additional context There's only a single job counter needed to implement this. However, this request also poses an opportunity to discuss whether each job should have its own counter (for some other reason).

yubiuser commented 12 months ago

Why don't you use two cron jobs on two jobs.yml with different execution frequencies?

drws commented 11 months ago

Why don't you use two cron jobs on two jobs.yml with different execution frequencies?

As explained in the OP:

Describe alternatives you've considered Multiple instances of webchanges. Works, but is not a clean solution.

So... multiple cron entries and multiple points of failure, fragmented configuration, repetitious commands... It's usually not hard to work around bugs with solutions such as multiple instances, but these aren't proper fixes, merely workarounds.

Let me also reinstate that there's only a single global job counter needed to implement this and a runtime one at that (RAM-bound that resets upon OS restart). So not even additional flash write cycles are needed for this feature to operate.