Maybe there should be some kind of rate limit on the API to prevent this
Yes I thought about that too, but what would be a good implementation? Throttle the calls? Or just throw
429 Too Many Requests and let the plugin deal with it?
Also I guess 10 or even 100 calls quickly in a row might be a fine. Maybe even a 1000 if the plugin is well implemented, so I'm wondering what should trigger the throttle.
The latest release should fix the memory leak but thats the best I can do until the events API is implemented so that i only need to set a single timer for the latest task to reccur and check any new completions for whether their recurrence date occurs sooner
If I understand correctly, does it mean this loop is processing all the tasks once per second?
Yep, Best i could do for now. But i came up with a new idea that hopefully I'll be able to implement soon once i have more time.
As it is though, the current code shouldn't affect memory and i haven't noticed an effect on CPU either, so as dirty as it makes me feel, it works, for now.
Thank you for this feature which I hope will be a first step to improve the workflow with tasks in Joplin. While testing, I have the impression that the task repetition only sends a notification at the first occurrence. Testing with a repetition every minute to stop after 3 ocurrences.
Joplin 2.4.6 (prod, linux)
Révision : 4b93664
The recurrence plugin's main functionality is to reset tasks, not send notifications. But if you would like, I would be happy to add that feature!
I think it would be a great feature. For reminders of tasks, events, birthdays
I'm also absolutely here for recurring reminders! Not having this feature in Joplin Desktop (Windows) / Mobile (Android) is what's keeping me in two different note taking apps. Joplin for most of my stuff and Keep for notes that I have recurring reminders in (mainly To-Do types of items).
Thanks for your work on this plugin @BeatLink !!
Can the pinned Plugin list be updated to point to GitLab repo since the GitHub one is now 404?
Okay I'm not sure if you are all aware but the plugin has been released and has been stable for some time! Try it out and let me know what you think. I will be doing some cleanup and documentation later today.
thanks for the plugin; so far it seems to be working very nicely as expected, so thanks very much for this.
Two thoughts from my side for a possible future development:
- currently when activating the parameter "show to-dos without due date" the agenda shows all todos over all notebooks. I am using the template-plugin and have a number of todo-templates; all of these also show up unnecessarily. Would it be possible to select the notebooks from which the todos for the agenda are gathered? Then I could for instance define a todo-notebook containing all my tasks ...
- When writing a todo containing a list of todos as content, the todo-note itself is regenerated as expected, but the list in the note is not reset, so if I have checked off every item in the todo-note, the regenerated version will present me the checked-off items again.
No idea if this is at all possible or at what cost, so I'm quite happy to experiment with the current version.
I will consider implementing this feature
Number 1 is a feature of Agenda however, not repeating to-dos. However, i will implement it as well
As a workaround for #1; I have added a tag to every task & then used the search-feature in the settings. While not as comfortable as filtering to a notebook, it will do as a workaround ...
could it be possible, that, if I update a date and a reminder that the plugin locks the SQLite DB? If I do the update it makes the change, then, a couple of seconds later (maybe 30`` or so) it locks the DB. I first tought it would be a error caused by joplin it self. But @laurent told me otherwise. So I wanted to check the plugins folder and found there a folder created from you plugin. I did check, what is inside and it was the SQLite db.....
As I use both plugins, the Agenda and repeating todo, I did realize, that both plugin cause some preformance issues. If I do disable both of it, it works smoother. But still not the way I was used on it on Evernote, but thats another topic. (migrating around 40k Notes)
So, maybe theres a hint in it that you can use as a further point for investigating the bug.
@BeatLink, I think you have a bug there:
You probably meant setTimeout.
The plugin works through Joplin's own data API. The plugin contains its own internal database for storing recurrence data however.
No, this is intentional. That setInterval is what repeatedly polls the events endpoint for any new changes. If setTimeout was used, the function would poll the events endpoint once and then stop polling for any new changes.
If there's a recommended alternative to this polling implementation I'd love to learn more.