Hello,
I designed my mail archive to use the nice Job module, but seems I just
realized an unexpected side-effect of it ...
The job module queues jobs in a blocking queue. The unexpected, is that
only one job (of any kind) can run at a time in an xwiki instance (unless I
misunderstood something which is always possible).
Currently, the mail archive creates jobs for loading emails, and these jobs
can be long-lived (say, 15min, 30min, or more...). It means that during
this time, you cannot install any extension anymore with EM, and anything
you do with EM (like, compute an extension plan, install an extension, etc)
is blocked until the mail archive job ends.
Do you see any way around this ? (I could shorten the life duration of mail
archive jobs, but I don't think it's a correct workaround).
Seems logical to restrict one job at a time per job type for example, but
jobs of different types may execute concurrently with no harm I think ...
By the way the other side-effect is that my mailarchive jobs (which purpose
are to be scheduled periodically), can "stack" on each other, if
periodicity is shorter than job duration. My intent was to just reject a
job if another is running for the mail archive to avoid this "stack"
effect, but as it's "locked" before getting a chance to execute, it's
useless.
Thanks,
Jeremie