BullMQ - Message Queue and Batch processing for NodeJS, Python, .NET, Elixir, Rust and PHP based on Redis or PostgreSQL
This report summarizes scanner evidence for taskforcesh/bullmq, a TypeScript project with 9,491 GitHub stars. SynthScan examined 183,458 lines of code across 771 source files, recording 917 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 8.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 332 finding(s).
Are imports declared and package/API names verified? 69 finding(s).
Are wrappers, guards, and repeated structures necessary? 729 finding(s).
Which changes need focused human review? 917 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 917 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | python/bullmq/backend.py | 339 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 341 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 351 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 353 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 362 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 364 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 41 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 43 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 92 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 94 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 114 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 116 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 142 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 144 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 214 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 216 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 251 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 253 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 265 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 267 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 287 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 289 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 751 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 753 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 761 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 763 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 236 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 238 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 279 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 281 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 297 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 299 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 389 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 391 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 561 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 563 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 603 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 605 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 619 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 621 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 645 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 647 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 827 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 829 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 290 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 292 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 302 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 304 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 406 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 408 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 418 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 420 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 425 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 427 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 86 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 88 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 149 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 151 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 167 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 169 | # ============================================================ | COMMENT |
| 390 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/redis_connection_cluster_test.py | 9 | async def test_set_client_name_non_cluster(self): | CODE |
| LOW | python/tests/redis_connection_cluster_test.py | 20 | async def test_set_client_name_cluster(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 21 | def test_row_to_job_map_json_encodes_plain_strings(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 42 | def test_job_from_json_round_trips_plain_string_fields(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 65 | def test_client_name_includes_schema_namespace(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 74 | async def test_move_to_failed_keeps_failed_reason_as_raw_text(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 144 | async def test_returns_last_applied_migration_version(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 162 | def test_quote_schema_name_error_message_mentions_dollar_signs(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 169 | async def test_ensure_job_channel_listens_once_per_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 183 | async def test_ensure_job_channel_relistens_after_reconnect(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 201 | async def test_reset_job_channel_forces_new_listen_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 219 | async def test_listen_connection_applies_last_application_name_when_created(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 249 | async def test_listen_connection_enables_tcp_keepalives(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 267 | async def test_set_application_name_updates_existing_listen_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 338 | async def test_wait_for_job_reconnects_listen_channel_after_psycopg_error(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 352 | async def test_wait_for_job_does_not_poll_while_blocked(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 370 | async def test_wait_for_job_returns_future_marker_when_only_delayed_jobs_exist(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 394 | async def test_extend_locks_batches_jobs_in_one_command(self): | CODE |
| LOW | python/tests/conftest.py | 52 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 10 | def test_dict_opts_uses_single_connection(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 15 | def test_url_opts_uses_single_connection(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 20 | def test_caller_single_connection_client_does_not_raise(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 28 | async def test_get_redis_version_returns_none_when_info_lacks_redis_version(self, _mock_load): | CODE |
| LOW | python/tests/redis_connection_test.py | 47 | async def test_get_redis_version_returns_string_when_info_has_redis_version(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 64 | def test_returns_false_when_current_version_is_none(self): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 69 | def test_returns_true_when_current_below_minimum(self): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 72 | def test_returns_false_when_current_at_or_above_minimum(self): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 78 | def test_default_skip_flags_are_false(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 83 | def test_skip_flags_persist_when_set(self, _mock_load): | CODE |
| LOW⚡ | python/tests/redis_connection_test.py | 91 | async def test_skip_version_check_short_circuits_get_redis_version(self, _mock_load): | CODE |
| LOW | python/tests/job_cancellation_test.py | 48 | async def test_wait_resolves_after_abort(self): | CODE |
| LOW | python/tests/job_cancellation_test.py | 79 | async def test_processor_observes_signal_after_cancel(self): | CODE |
| LOW | python/tests/job_cancellation_test.py | 130 | async def test_cancel_unknown_job_returns_false(self): | CODE |
| LOW | python/tests/job_cancellation_test.py | 186 | async def test_processor_without_signal_param_still_works(self): | CODE |
| LOW | python/tests/sql_loader_test.py | 10 | def test_resolve_sql_root_uses_repo_src_postgres_in_repo_layout(self): | CODE |
| LOW | python/tests/sql_loader_test.py | 25 | def test_resolve_sql_root_ignores_unrelated_ancestor_src_postgres(self): | CODE |
| LOW | python/tests/delay_test.py | 29 | async def test_progress_delayed_job_only_after_delayed_time(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 44 | async def test_long_running_job_survives_lock_renewal(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 74 | async def test_locks_renewed_event_emitted(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 114 | async def test_tracked_jobs_cleared_after_completion(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 144 | async def test_lock_manager_closes_idempotently(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 159 | async def test_extend_locks_does_not_pipeline_lua_scripts(self): | CODE |
| LOW⚡ | python/tests/test_imports.py | 12 | def test_unrecoverable_error_importable_from_package_root(self): | CODE |
| LOW⚡ | python/tests/test_imports.py | 17 | def test_waiting_children_error_importable_from_package_root(self): | CODE |
| LOW⚡ | python/tests/test_imports.py | 22 | def test_delayed_error_importable_from_package_root(self): | CODE |
| LOW | python/tests/queue_test.py | 71 | async def test_get_waiting_returns_jobs_in_ascending_order(self): | CODE |
| LOW | python/tests/queue_test.py | 91 | async def test_get_jobs_skips_missing_hash_and_backfills_waiting_range(self): | CODE |
| LOW | python/tests/queue_test.py | 118 | async def test_add_job_with_options(self): | CODE |
| LOW | python/tests/queue_test.py | 147 | async def test_is_paused_with_custom_prefix(self): | CODE |
| LOW | python/tests/queue_test.py | 164 | async def test_trim_events_manually(self): | CODE |
| LOW | python/tests/queue_test.py | 182 | async def test_trim_events_manually_with_custom_prefix(self): | CODE |
| LOW | python/tests/queue_test.py | 277 | async def test_retry_completed_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 333 | async def test_retry_failed_jobs_before_timestamp(self): | CODE |
| LOW | python/tests/queue_test.py | 400 | async def test_retry_jobs_when_queue_is_paused(self): | CODE |
| LOW | python/tests/queue_test.py | 450 | async def test_promote_all_delayed_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 507 | async def test_get_counts_per_priority(self): | CODE |
| LOW | python/tests/queue_test.py | 535 | async def test_obliterate_with_force_false_should_fail_with_active_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 566 | async def test_obliterate_with_force_true_should_succeed_with_active_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 603 | async def test_obliterate_with_force_true_parameter_conversion(self): | CODE |
| LOW | python/tests/queue_test.py | 615 | async def test_drain_count_added_unprocessed_jobs(self): | CODE |
| 150 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vitest.postgres.setup.ts | 41 | once: () => client, | COMMENT |
| LOW | osv-scanner.toml | 1 | # OSV Scanner Configuration | COMMENT |
| LOW | python/run_tests_postgres.sh | 1 | #!/bin/bash | COMMENT |
| LOW | python/bullmq/scripts.py | 61 | encoded_key = optsEncodeMap.get(key, key) | COMMENT |
| LOW | python/bullmq/backends/postgres_backend.py | 261 | COMMENT | |
| LOW | rust/tests/queue_events_test.rs | 461 | cleanup_queue(&queue).await; | COMMENT |
| LOW | rust/src/keys.rs | 41 | /// Validate a custom job id, mirroring `Job.validateOptions` in BullMQ Node.js. | COMMENT |
| LOW | rust/src/types.rs | 81 | impl Default for JobProgress { | COMMENT |
| LOW | rust/src/types.rs | 221 | /// | COMMENT |
| LOW | rust/src/job.rs | 41 | /// A `Job` holds the data to be processed and all associated metadata. | COMMENT |
| LOW | rust/src/job.rs | 61 | #[serde(default)] | COMMENT |
| LOW | rust/src/job.rs | 81 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | rust/src/job.rs | 541 | COMMENT | |
| LOW | rust/src/error.rs | 41 | COMMENT | |
| LOW | rust/src/error.rs | 61 | COMMENT | |
| LOW | rust/src/lib.rs | 1 | #![warn(missing_docs)] | COMMENT |
| LOW | rust/src/lib.rs | 21 | //! #[tokio::main] | COMMENT |
| LOW | rust/src/queue_events.rs | 1 | //! Cross-process queue event listener. | COMMENT |
| LOW | rust/src/queue_events.rs | 41 | use crate::error::Error; | COMMENT |
| LOW | rust/src/queue_events.rs | 81 | COMMENT | |
| LOW | rust/src/options.rs | 41 | /// Maximum iterations before stopping. | COMMENT |
| LOW | rust/src/options.rs | 81 | .finish() | COMMENT |
| LOW | rust/src/options.rs | 101 | /// When a cycle is exhausted the connection stays in a failed state, but | COMMENT |
| LOW | rust/src/options.rs | 141 | /// Maximum number of connections in the pool. | COMMENT |
| LOW | rust/src/options.rs | 201 | /// ``` | COMMENT |
| LOW | rust/src/options.rs | 461 | /// Custom backoff strategy function for job retries. | COMMENT |
| LOW | rust/src/options.rs | 541 | impl WorkerOptions { | COMMENT |
| LOW | rust/src/options.rs | 701 | } | COMMENT |
| LOW | rust/src/options.rs | 781 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | rust/src/options.rs | 801 | /// | COMMENT |
| LOW | rust/src/options.rs | 941 | /// Parent queue name. | COMMENT |
| LOW | rust/src/options.rs | 981 | /// TTL in milliseconds for the dedup key. | COMMENT |
| LOW | rust/src/worker.rs | 141 | /// Job progress was updated. | COMMENT |
| LOW | rust/src/worker.rs | 161 | /// use bullmq::{Worker, Job}; | COMMENT |
| LOW | rust/src/worker.rs | 541 | write_uint(buf, limit as u64).unwrap(); | COMMENT |
| LOW | rust/src/flow_producer.rs | 41 | /// Create a flow job named `name` for `queue_name` with the given `data`. | COMMENT |
| LOW | rust/src/flow_producer.rs | 261 | } | COMMENT |
| LOW | rust/src/flow_producer.rs | 1001 | } | COMMENT |
| LOW | rust/src/queue.rs | 21 | COMMENT | |
| LOW | rust/src/queue.rs | 41 | pub struct DependencyItem { | COMMENT |
| LOW | rust/src/queue.rs | 101 | } | COMMENT |
| LOW | rust/src/queue.rs | 181 | /// # async fn demo(queue: bullmq::Queue) -> bullmq::Result<()> { | COMMENT |
| LOW | rust/src/queue.rs | 841 | COMMENT | |
| LOW | rust/src/queue.rs | 1821 | /// numeric result `1`/`0` is represented here as a `bool`: | COMMENT |
| LOW | rust/src/queue.rs | 2481 | _ => break, | COMMENT |
| LOW | rust/src/queue.rs | 3021 | /// | COMMENT |
| LOW | rust/src/redis_connection.rs | 281 | /// Grace period added on top of a blocking command's own timeout before the | COMMENT |
| LOW | rust/src/redis_connection.rs | 301 | /// `BZPOPMIN` after 500ms — long before a marker is written for an idle | COMMENT |
| LOW | rust/src/job_scheduler.rs | 41 | /// End date (Unix timestamp in ms). No executions after this. | COMMENT |
| LOW | rust/src/job_scheduler.rs | 61 | pub name: String, | COMMENT |
| LOW | rust/src/job_scheduler.rs | 81 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | tests/telemetry_interface.test.ts | 441 | startSpan(name: string, options?: SpanOptions, context?: any): Span { | COMMENT |
| LOW | tests/telemetry_interface.test.ts | 521 | // Discard any spans recorded before this point (e.g. the automatic | COMMENT |
| LOW | tests/worker.test.ts | 1341 | expect(reconnectBlocking.callCount).toBe(2); | COMMENT |
| LOW | tests/child_stdio_null.test.ts | 21 | // Other exports are preserved from the real module in case they get pulled in | COMMENT |
| LOW | dotnet/tests/BullMQ.Tests/AssemblyInfo.cs | 1 | using Xunit; | COMMENT |
| LOW | dotnet/scripts/test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | dotnet/src/BullMQ/Worker.cs | 1 | namespace BullMQ; | COMMENT |
| LOW | dotnet/src/BullMQ/IQueueBackend.cs | 1 | namespace BullMQ; | COMMENT |
| LOW | dotnet/src/BullMQ/IQueueBackend.cs | 61 | /// <summary>Builds the connection client name (for discovery / observability).</summary> | COMMENT |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/tests/job_scheduler_test.py | 118 | except asyncio.TimeoutError: | CODE |
| HIGH | python/bullmq/worker.py | 238 | except Exception: | CODE |
| HIGH | python/bullmq/queue_events.py | 192 | except (TypeError, ValueError): | CODE |
| HIGH | python/bullmq/queue_events.py | 240 | except asyncio.CancelledError: | CODE |
| HIGH | python/bullmq/queue_events.py | 242 | except Exception: | CODE |
| HIGH | python/bullmq/lock_manager.py | 152 | except asyncio.CancelledError: | CODE |
| HIGH | python/bullmq/lock_manager.py | 164 | except Exception: | CODE |
| HIGH | python/bullmq/job_scheduler.py | 53 | except ValueError: | CODE |
| HIGH | python/bullmq/backends/postgres_backend.py | 497 | except Exception: | CODE |
| HIGH | python/bullmq/backends/postgres_connection.py | 266 | except Exception: | CODE |
| HIGH | python/bullmq/backends/postgres_connection.py | 291 | except Exception: | CODE |
| HIGH | python/bullmq/backends/postgres_connection.py | 298 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/lock_manager_test.py | 173 | except Exception as error: | CODE |
| MEDIUM | python/tests/worker_test.py | 612 | def on_completed(completed_job, result): | CODE |
| MEDIUM | python/tests/worker_test.py | 672 | def on_completed(completed_job, result): | CODE |
| LOW | python/tests/worker_test.py | 596 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 618 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 656 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 679 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 722 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 747 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 787 | except Exception as e: | CODE |
| LOW | python/tests/worker_test.py | 813 | except Exception as e: | CODE |
| LOW | python/bullmq/queue.py | 202 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 215 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 238 | except Exception: | CODE |
| LOW | python/bullmq/worker.py | 326 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 366 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 460 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 466 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 491 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 589 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 597 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 627 | except Exception as err: | CODE |
| MEDIUM | python/bullmq/worker.py | 591 | def runStalledJobsCheck(self): | CODE |
| LOW | python/bullmq/queue_events.py | 107 | except Exception as err: | CODE |
| LOW | python/bullmq/queue_events.py | 159 | except Exception as err: | CODE |
| LOW | python/bullmq/queue_events.py | 242 | except Exception: | CODE |
| MEDIUM | python/bullmq/queue_events.py | 102 | def _autorun(self) -> None: | CODE |
| LOW | python/bullmq/lock_manager.py | 157 | except Exception as err: | CODE |
| LOW | python/bullmq/lock_manager.py | 164 | except Exception: | CODE |
| LOW | python/bullmq/lock_manager.py | 241 | except Exception as err: | CODE |
| LOW | python/bullmq/timer.py | 22 | except Exception as err: | CODE |
| MEDIUM | python/bullmq/timer.py | 17 | def _job(self) -> None: | CODE |
| LOW | python/bullmq/job.py | 390 | except Exception as err: | CODE |
| LOW | python/bullmq/utils.py | 20 | except Exception as e: | CODE |
| LOW | python/bullmq/utils.py | 54 | except Exception: | CODE |
| LOW⚡ | python/bullmq/utils.py | 71 | except Exception: | CODE |
| LOW⚡ | python/bullmq/utils.py | 78 | except Exception: | CODE |
| LOW⚡ | python/bullmq/utils.py | 84 | except Exception: | CODE |
| MEDIUM | python/bullmq/utils.py | 17 | def extract_result(job_task, emit_callback): | CODE |
| LOW | python/bullmq/backends/postgres_backend.py | 497 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 266 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 291 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 298 | except Exception: | CODE |
| LOW | python/bullmq/backends/redis_backend.py | 100 | except Exception as err: | CODE |
| LOW | python/bullmq/backends/redis_backend.py | 106 | except Exception as err: | CODE |
| LOW | docs/gitbook/guide/jobs/retrying-job.md | 247 | except Exception as error: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/lock_manager_test.py | 21 | CODE | |
| LOW | python/bullmq/queue_events.py | 24 | CODE | |
| LOW | python/bullmq/lock_manager.py | 20 | CODE | |
| LOW | python/bullmq/lock_manager.py | 29 | CODE | |
| LOW | python/bullmq/backend.py | 24 | CODE | |
| LOW | python/bullmq/backend.py | 30 | CODE | |
| LOW | python/bullmq/job.py | 1 | CODE | |
| LOW | python/bullmq/abort_controller.py | 34 | CODE | |
| LOW | python/bullmq/__init__.py | 10 | CODE | |
| LOW | python/bullmq/__init__.py | 11 | CODE | |
| LOW | python/bullmq/__init__.py | 12 | CODE | |
| LOW | python/bullmq/__init__.py | 13 | CODE | |
| LOW | python/bullmq/__init__.py | 14 | CODE | |
| LOW | python/bullmq/__init__.py | 15 | CODE | |
| LOW | python/bullmq/__init__.py | 16 | CODE | |
| LOW | python/bullmq/__init__.py | 16 | CODE | |
| LOW | python/bullmq/__init__.py | 16 | CODE | |
| LOW | python/bullmq/__init__.py | 17 | CODE | |
| LOW | python/bullmq/__init__.py | 18 | CODE | |
| LOW | python/bullmq/__init__.py | 19 | CODE | |
| LOW | python/bullmq/__init__.py | 19 | CODE | |
| LOW | python/bullmq/__init__.py | 19 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 24 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 30 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 32 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 32 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 38 | CODE | |
| LOW | python/bullmq/queue_events_producer.py | 10 | CODE | |
| LOW | python/bullmq/scripts.py | 6 | CODE | |
| LOW | python/bullmq/custom_errors/__init__.py | 1 | CODE | |
| LOW | python/bullmq/custom_errors/__init__.py | 2 | CODE | |
| LOW | python/bullmq/custom_errors/__init__.py | 3 | CODE | |
| LOW | python/bullmq/types/__init__.py | 1 | CODE | |
| LOW | python/bullmq/types/__init__.py | 2 | CODE | |
| LOW | python/bullmq/types/__init__.py | 3 | CODE | |
| LOW | python/bullmq/types/__init__.py | 4 | CODE | |
| LOW | python/bullmq/types/__init__.py | 5 | CODE | |
| LOW | python/bullmq/types/__init__.py | 6 | CODE | |
| LOW | python/bullmq/types/__init__.py | 6 | CODE | |
| LOW | python/bullmq/types/__init__.py | 7 | CODE | |
| LOW | python/bullmq/types/__init__.py | 8 | CODE | |
| LOW | python/bullmq/types/__init__.py | 9 | CODE | |
| LOW | python/bullmq/types/__init__.py | 10 | CODE | |
| LOW | python/bullmq/types/__init__.py | 10 | CODE | |
| LOW | python/bullmq/types/__init__.py | 10 | CODE | |
| LOW | python/bullmq/backends/postgres_backend.py | 16 | CODE | |
| LOW | python/bullmq/backends/postgres_backend.py | 31 | CODE | |
| LOW | python/bullmq/backends/postgres_connection.py | 15 | CODE | |
| LOW | python/bullmq/backends/__init__.py | 1 | CODE | |
| LOW | python/bullmq/backends/redis_backend.py | 17 | CODE | |
| LOW | python/bullmq/backends/redis_backend.py | 32 | CODE | |
| LOW | python/bullmq/postgres/sql_loader.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/bullmq/worker.py | 492 | # Check if this is a connection error that should be retried | COMMENT |
| LOW | .github/workflows/release.yml | 48 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 69 | # Check if there are actually changes to commit after adding | COMMENT |
| LOW | .github/workflows/release.yml | 150 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 170 | # Check if there are actually changes to commit after adding | COMMENT |
| LOW | .github/workflows/release.yml | 241 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 260 | # Check if there are actually changes to commit after adding | COMMENT |
| LOW | .github/workflows/release.yml | 342 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 361 | # Check if there are actually changes to commit after adding | COMMENT |
| LOW | .github/workflows/release.yml | 428 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 448 | # Check if there are actually changes to commit after adding | COMMENT |
| LOW | .github/workflows/release.yml | 518 | # Check if there are any changes to commit | COMMENT |
| LOW | .github/workflows/release.yml | 538 | # Check if there are actually changes to commit after adding | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | elixir/README.md | 64 | BullMQ.Queue.add("emails", "send", %{to: "user@example.com"}, | CODE |
| LOW | elixir/README.md | 99 | BullMQ.Queue.add("emails", "send-welcome", %{to: "user@example.com"}, | CODE |
| LOW | elixir/README.md | 120 | to: "user@example.com", | CODE |
| LOW | elixir/guides/flows.md | 214 | data: %{recipients: ["admin@example.com"]}, | CODE |
| LOW | elixir/guides/workers.md | 457 | {:ok, job} = BullMQ.Queue.add("emails", "send", %{to: "user@example.com"}, | CODE |
| LOW | elixir/guides/introduction.md | 37 | to: "user@example.com", | CODE |
| LOW | elixir/guides/deduplication.md | 33 | BullMQ.Queue.add("notifications", "send-email", %{to: "user@example.com"}, | CODE |
| LOW | elixir/guides/deduplication.md | 39 | BullMQ.Queue.add("notifications", "send-email", %{to: "user@example.com"}, | CODE |
| LOW | rust/README.md | 52 | "to": "user@example.com", | CODE |
| LOW | rust/tests/job_scheduler_test.rs | 115 | let data = serde_json::json!({"email": "user@example.com"}); | CODE |
| LOW | tests/obliterate.test.ts | 90 | return job.log('Lorem Ipsum Dolor Sit Amet'); | CODE |
| LOW | tests/obliterate.test.ts | 90 | return job.log('Lorem Ipsum Dolor Sit Amet'); | CODE |
| LOW | docs/gitbook/elixir/introduction.md | 72 | to: "user@example.com", | CODE |
| LOW | php/README.md | 100 | 'to' => 'user@example.com', | CODE |
| LOW | php/src/Queue.php | 109 | * $job = $queue->add('email', ['to' => 'user@example.com']); | COMMENT |
| LOW | dotnet/README.md | 42 | await queue.AddAsync("welcome", new { to = "user@example.com" }); | CODE |
| LOW | dotnet/README.md | 90 | await queue.AddAsync("welcome", new { to = "user@example.com" }); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/bullmq/types/queue_options.py | 0 | avoid version validation to be greater or equal than v5.0.0. @default false | STRING |
| HIGH | python/bullmq/types/worker_options.py | 0 | avoid version validation to be greater or equal than v5.0.0. @default false | STRING |
| HIGH | python/bullmq/types/queue_events_options.py | 0 | avoid version validation to be greater or equal than v5.0.0. @default false | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/tests/worker_test.py | 229 | CODE | |
| LOW | python/tests/worker_test.py | 416 | CODE | |
| LOW | python/tests/worker_test.py | 429 | CODE | |
| LOW | python/bullmq/queue.py | 223 | CODE | |
| LOW | python/bullmq/queue.py | 437 | CODE | |
| LOW | python/bullmq/worker.py | 162 | CODE | |
| LOW | python/bullmq/worker.py | 472 | CODE | |
| LOW | python/bullmq/worker.py | 644 | CODE | |
| LOW | python/bullmq/lock_manager.py | 168 | CODE | |
| LOW | python/bullmq/job_scheduler.py | 346 | CODE | |
| LOW | python/bullmq/scripts.py | 197 | CODE | |
| LOW | python/bullmq/scripts.py | 835 | CODE | |
| LOW | python/bullmq/backends/postgres_backend.py | 774 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | python/tests/queue_test.py | 543 | # Create a worker that processes jobs slowly | COMMENT |
| MEDIUM | python/tests/queue_test.py | 575 | # Create a worker that processes jobs slowly | COMMENT |
| MEDIUM | .github/workflows/release.yml | 318 | # Create a clean directory with only the necessary files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rust/src/lib.rs | 5 | //! A powerful, fast, and robust job queue backed by Redis. | COMMENT |
| MEDIUM | tests/stalled_jobs.test.ts | 1111 | // Wait for both failures so the test is robust to event ordering and | COMMENT |
| MEDIUM | src/classes/redis-queue-backend.ts | 2807 | // To make this robust we race the blocking command against a watchdog | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | rust/src/flow_producer.rs | 269 | /// The returned [`JobNode`] keeps the same tree shape as requested. The | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/bullmq/redis_connection.py | 164 | async def set_client_name(self, name: str) -> None: | CODE |
| LOW⚡ | python/bullmq/redis_connection.py | 180 | async def _set_client_name_on_client(self, client, name: str) -> None: | CODE |
| LOW⚡ | python/bullmq/redis_connection.py | 186 | def _set_client_name_on_pool(self, client, name: str) -> None: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 271 | async def set_application_name(self, name: str) -> None: | CODE |
| LOW | python/bullmq/backends/__init__.py | 3 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | python/bullmq/job.py | 108 | Attempts to retry the job. Only a job that has failed or completed can be retried. Args: s | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/tests/worker_test.rs | 9901 | // Step 1: complete | COMMENT |
| LOW | rust/tests/flow_test.rs | 4454 | // Step 0: Add a child dynamically | COMMENT |
| LOW | rust/tests/flow_test.rs | 4492 | // Step 1: Children are done, complete | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rust/tests/worker_test.rs | 9901 | // Step 1: complete | COMMENT |
| LOW | rust/tests/flow_test.rs | 4454 | // Step 0: Add a child dynamically | COMMENT |
| LOW | rust/tests/flow_test.rs | 4492 | // Step 1: Children are done, complete | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | python/bullmq/scripts.py | 543 | CODE | |
| LOW | python/bullmq/scripts.py | 671 | CODE | |
| LOW | python/bullmq/scripts.py | 680 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 58 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dotnet/scripts/test.sh | 10 | # Usage: | COMMENT |