debian-forge-composer/internal
Ondřej Budai 9c80a17ee5 fsjobqueue: refactor to allow dequeuing by multiple criteria
Previous implementation of fsjobqueue is amazing but it has its drawbacks:
- dequeueing can be done only based on a job type
- it's limited to 100 jobs per a job type

As we soon want to be able to dequeue also by another criteria (job channel),
we need to refactor the queue.

The new implementation is more naive but also more flexible. It basically
works like the dbjobqueue - dequeueing goroutines listen for newly added
jobs. When that happens, a signal is sent to all of them and they all inspect
all pending jobs and dequeue ones that match their needs. Ones that don't find
a suitable job, are waiting for the next signal.

This is certainly slower implementation as every time a new job is added into
the queue, all dequeueing goroutines will have to iterate over all
pending jobs. I think that's fine because fsjobqueue is not recommended
to use for composer instances with heavy load.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-02-16 17:14:36 +01:00
..
auth jwt: support multiple key providers 2022-01-31 20:40:22 +00:00
blueprint internal: mandate installation device for the simplified installer 2021-11-18 18:10:09 +01:00
boot tests: update IDs in Openstack image boot test 2022-02-14 12:13:18 +02:00
client Weldr API: introduce Image Type denylist for filtering exposed images 2021-08-02 18:51:03 +02:00
cloud cmd/osbuild-service-maintenance: GCP deletes by image name 2022-02-15 18:22:39 +01:00
cloudapi cloudapi: test repository config conversion function 2022-02-14 17:38:41 +01:00
common internal/common: introduce function to convert data sizes 2021-11-02 18:32:47 +01:00
crypt crypt: add automatic darwin support 2020-07-17 07:48:22 +02:00
disk gosec: G404 - Use of weak rng 2021-12-13 12:17:30 +02:00
distro distro/rhel86: conditional greenboot packages for centos 2022-02-16 10:49:55 +01:00
distroregistry distro: add an alias for RHEL 8.7 2022-02-08 17:37:36 +01:00
jobqueue fsjobqueue: refactor to allow dequeuing by multiple criteria 2022-02-16 17:14:36 +01:00
jsondb gosec: G306-WriteFile permissions higher than 0600 2021-12-13 12:17:30 +02:00
kojiapi worker/server: typesafe Job and JobStatus 2022-02-01 20:28:40 +00:00
mocks test: Add fixture support for blueprint changes 2022-02-15 10:10:21 +01:00
osbuild1 osbuild: test Write() on nil Result receivers 2021-11-17 15:21:40 +01:00
osbuild2 osbuild2: add 'remote' option for ostree.pull 2022-02-11 12:30:44 +01:00
ostree ostree: add test for VerifyRef() 2021-06-18 14:02:09 +01:00
prometheus metrics: change job metrics namespace 2022-02-08 15:57:12 +01:00
reporegistry reporegistry: Add a DistroHasRepos helper function 2021-07-12 08:58:42 +02:00
rhsm internal/rhsm: implement fallback to the previous mechanism 2021-08-09 12:40:23 +02:00
rpmmd dnf-json: Change dnf-json to be a daemon 2021-12-15 09:41:32 +01:00
store store: Filter out blank blueprint name 2022-02-15 10:10:21 +01:00
target Add support for OCI upload provider 2022-01-28 15:16:47 +01:00
test gosec: G204 - Subproccess launched as function arg 2021-12-13 12:17:30 +02:00
upload Relax TCP timeouts for koji connections 2022-02-10 14:58:10 +01:00
weldr weldr: Check for missing undo blueprint 2022-02-15 10:10:21 +01:00
worker DepsolveJob: rename struct field for consistency 2022-02-14 17:38:41 +01:00
tools.go go: vendor the oapi-codegen cmd 2021-02-01 15:32:58 +01:00