Closed mgn200 closed 3 weeks ago
Have you upgraded to v3.28.1? I think this is fixed in that release: https://github.com/bensheldon/good_job/releases/tag/v3.28.1
Let me know if it isn't and I'll take another look.
Have you upgraded to v3.28.1? I think this is fixed in that release: https://github.com/bensheldon/good_job/releases/tag/v3.28.1
Let me know if it isn't and I'll take another look.
Yes, it is fixed now, thank you! Should have checked changelog and update gem in the first place.
Good day! I've experienced problem with calling
Job1.perform_now
inside a Job2 that has been called with#perform_later
. Both of the jobs have setgood_job_control_concurrency_with(total_limit: 1)
I am using Rails 7.1 with good_job v 3.28 Problem can be reproduced like this:
I call FirsJob.perform_later and expect SecondJob to be done in place, not to be enqued. But the printing goes like this(i omitted the queue_name in class definitions):
So it seems that SecondJob is not getting executed in place and instead tries to get enqueued, and fails with
ConcurrencyExceededError
- not sure why.I see two records in the good_jobs table. The first is FirstJob, with an error column that has doubled error:
And the second record is a SecondJob, it has an empty error field, but populated serialized_params["exception_executions"]
Everything seems to be working fine if i remove concurrency_key from SecondJob. Trying to understand if this is a bug, or an expected behavior.
Thank you.