cdesautels β created an issue.
Ok, sounds like you gave a lot of thought to the cron integration. I think you probably should explain this in more detail in the docs and provide some examples of the more arcane cron strings.
As for the code invocation hack. I don't currently have a scenario where I can test it. But probably will in the future. If at that time, I find a problem, I'll be in touch.
Thanks for your prompt reply.
Sure. All Ultimate Cron does is find every cron_hook in the system and allows you to set specific Cron rules for it. Then the best practice is to set Cron to run VERY frequently, but it only runs the tasks the Ultimate Cron's config says it should. So you have have tasks the run once a year or every minute, or anything in between that is possible with Crontabs rather flexible rules (much more flexible then your set up). You can know exactly when a given task will run and because you can create your own Ultimate Cron hooks you can even apply conditions in code that allow a given task to run or not run, schedule be dammed.
Your rules are rather vague, "on the 1st of every 1 month". What does that mean? Midnight? 3am? noon?
So for Codit. I suppose one could put conditional logic in the gatherItemsToProcess() method to override a schedule. But it would be nice if there were a way to fire a batch directly from code for some edge cases I've come across.
A minimum viable change would be to provide a means to enter an explicit Crontab rule rather then the plain english string you currently support. I imagine that that string is being converted to a crontab rule somewhere, so it should be too hard to proved a crontab rule option.
cdesautels β created an issue.
I uninstalled 1.0.4, deleted the patch and installed 1.0.6. The config page now loads with out errror.
Thanks.
"Is it possible you are applying the patch to 1.0.5 which might cause that use to be duplicated?"
I don't think so, I manage this all with Composer and cweagans/composer-patches. When I installed v.1.0.5, Composer installed it without a hitch AND reported that the patch could NOT be applied.
I could try try removing the patch and doing this again but I don't think it'll make a difference. Composer did not report any errors. Just that the patch couldn't be applied. Which is what it's supposed to do.
cdesautels β created an issue.
The patch works, the module is now working on D11.
cdesautels β created an issue.
cdesautels β created an issue.
cdesautels β created an issue.
Thanks, you really jumped on that. I tested your change in 1.0.4 and it works fine. Just for clarity though, this suffers from the same problem you're more verbose code does? That is, it's not a true batch?
At for the other question. I think another approach is to just return the data from gatherItemsToProcess() as a 2 dimensional array, and write the callback in processOne() to loop through each entity in each nested array which is seen by processOne() as a single item. I suspect there'll still be issues with logging though.
cdesautels β created an issue.
That did it. Test email now goes out as expected. Thanks.
cdesautels β created an issue.