]> git.koha-community.org Git - koha.git/commit
Bug 35655: Only use STOMP if JobsNotificationMethod set to do so
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 12 Sep 2024 14:14:22 +0000 (11:14 -0300)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 30 Sep 2024 14:30:57 +0000 (15:30 +0100)
commit19bb00d9e181292eaabcb38440c9fa7735574389
tree66ab535a6ac54fd45792540a5387f24873fcae80
parent462ba737003d0d74532546b5b0d0b22a96cbd908
Bug 35655: Only use STOMP if JobsNotificationMethod set to do so

This patch makes the background jobs (jobs from now on) connect step not
try to connect to the STOMP broker, unless explicitly told to do so.

This is achieved by using a newly introduced system preference
`JobsNotificationMethod` which falls back to STOMP if undefined.

The "about" page now has 3 states for

+ Message broker:  Using SQL polling
+ Message broker:  Using SQL polling (Fallback, Error connecting to RabbitMQ)
+ Message broker:  Using RabbitMQ

The goal for this patch is to stop flooding the logs on very busy sites
when Rabbit is not being used. This shouldn't predate any efforts on
making the STOMP based jobs brokering mechanism solid and usable.

To test:
1. On clean `main`, run:
   $ ktd --shell
2. Open the logs on a separate terminal:
   $ ktd --shell
  k$ tail -f /var/log/koha/kohadev/*.log
3. Stage some MARC for import
=> SUCCESS: No warnings about STOMP
4. Import the staged records
=> SUCCESS: No warnings about STOMP
5. Stop rabbitmq:
  k$ sudo service rabbitmq-server stop
6. Repeat 2-4
=> FAIL: The logs say it couldn't connect to STOMP
7. Apply this patches and run:
  k$ restart_all
8a. See the "about" page, should read:
    Message broker: Using SQL polling (Fallback, Error connecting to RabbitMQ)
8b. Repeat 2-4
    should work with one warning in the
9. Start rabbit:
  k$ sudo service rabbitmq-server start
  k$ restart_all (not really necessary)
10a. See the "about" page, should read:
    Message broker:  Using RabbitMQ
10b. Repeat 2-4
=> SUCCESS: No warnings about STOMP
11. Change the `JobsNotificationMethod` system preference to *polling*
   and stop rabbit:
  k$ sudo service rabbitmq-server stop
  k$ restart_all
12a. See the "about" page, should read:
Message broker:  Using SQL polling
12b. Repeat 2-4
=> SUCCESS: No warnings about STOMP, not even on startup
13. Sign off :-D

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Koha/BackgroundJob.pm
about.pl
koha-tmpl/intranet-tmpl/prog/en/modules/about.tt