BullMQ - Message Queue and Batch processing for NodeJS, Python, .NET, Elixir, Rust and PHP based on Redis or PostgreSQL
This report presents the forensic synthetic code analysis of taskforcesh/bullmq, a TypeScript project with 9,344 GitHub stars. SynthScan v2.0 examined 175,380 lines of code across 754 source files, recording 872 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 8.1 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 872 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | python/bullmq/backend.py | 328 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 330 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 340 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 342 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 351 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backend.py | 353 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 41 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 43 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 81 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 83 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 103 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 105 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 131 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 133 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 203 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 205 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 240 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 242 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 254 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 256 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 276 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backend.py | 278 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 725 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 727 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 735 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/postgres_backend.py | 737 | # ============================================================ | 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 | 266 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 268 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 284 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 286 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 376 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 378 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 548 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 550 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 590 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 592 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 606 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 608 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 632 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 634 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 798 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/postgres_backend.py | 800 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 405 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 407 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 417 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 419 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 424 | # ============================================================ | COMMENT |
| MEDIUM⚡ | python/bullmq/backends/redis_backend.py | 426 | # ============================================================ | 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 |
| MEDIUM | python/bullmq/backends/redis_backend.py | 197 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 199 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 265 | # ============================================================ | COMMENT |
| MEDIUM | python/bullmq/backends/redis_backend.py | 267 | # ============================================================ | 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 | 20 | def test_row_to_job_map_json_encodes_plain_strings(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 41 | def test_job_from_json_round_trips_plain_string_fields(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 64 | def test_client_name_includes_schema_namespace(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 73 | async def test_move_to_failed_keeps_failed_reason_as_raw_text(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 143 | async def test_returns_last_applied_migration_version(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 161 | def test_quote_schema_name_error_message_mentions_dollar_signs(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 168 | async def test_ensure_job_channel_listens_once_per_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 182 | async def test_ensure_job_channel_relistens_after_reconnect(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 200 | async def test_reset_job_channel_forces_new_listen_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 218 | async def test_listen_connection_applies_last_application_name_when_created(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 248 | async def test_set_application_name_updates_existing_listen_connection(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 316 | async def test_wait_for_job_reconnects_listen_channel_after_psycopg_error(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 328 | async def test_wait_for_job_returns_future_marker_when_only_delayed_jobs_exist(self): | CODE |
| LOW | python/tests/postgres_backend_test.py | 352 | 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 | 38 | async def test_long_running_job_survives_lock_renewal(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 68 | async def test_locks_renewed_event_emitted(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 108 | async def test_tracked_jobs_cleared_after_completion(self): | CODE |
| LOW | python/tests/lock_manager_test.py | 138 | async def test_lock_manager_closes_idempotently(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 | 53 | async def test_get_waiting_returns_jobs_in_ascending_order(self): | CODE |
| LOW | python/tests/queue_test.py | 73 | async def test_get_jobs_skips_missing_hash_and_backfills_waiting_range(self): | CODE |
| LOW | python/tests/queue_test.py | 100 | async def test_add_job_with_options(self): | CODE |
| LOW | python/tests/queue_test.py | 129 | async def test_is_paused_with_custom_prefix(self): | CODE |
| LOW | python/tests/queue_test.py | 146 | async def test_trim_events_manually(self): | CODE |
| LOW | python/tests/queue_test.py | 164 | async def test_trim_events_manually_with_custom_prefix(self): | CODE |
| LOW | python/tests/queue_test.py | 259 | async def test_retry_completed_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 315 | async def test_retry_failed_jobs_before_timestamp(self): | CODE |
| LOW | python/tests/queue_test.py | 382 | async def test_retry_jobs_when_queue_is_paused(self): | CODE |
| LOW | python/tests/queue_test.py | 432 | async def test_promote_all_delayed_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 489 | async def test_get_counts_per_priority(self): | CODE |
| LOW | python/tests/queue_test.py | 517 | async def test_obliterate_with_force_false_should_fail_with_active_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 548 | async def test_obliterate_with_force_true_should_succeed_with_active_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 585 | async def test_obliterate_with_force_true_parameter_conversion(self): | CODE |
| LOW | python/tests/queue_test.py | 597 | async def test_drain_count_added_unprocessed_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 690 | async def test_get_prioritized_jobs(self): | CODE |
| LOW | python/tests/queue_test.py | 731 | async def test_get_failed_returns_only_failed_jobs(self): | CODE |
| LOW | python/tests/queue_events_test.py | 26 | async def test_emits_added_event_with_job_id(self): | CODE |
| 131 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 | vitest.config.ts | 41 | 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 | 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 | pub struct QueueEventEntry { | 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 | 341 | pub backoff_strategy: Option<BackoffStrategyFn>, | COMMENT |
| LOW | rust/src/options.rs | 421 | /// Create default worker options. | COMMENT |
| LOW | rust/src/options.rs | 581 | COMMENT | |
| LOW | rust/src/options.rs | 621 | COMMENT | |
| LOW | rust/src/options.rs | 661 | pub remove_dependency_on_failure: Option<bool>, | COMMENT |
| LOW | rust/src/options.rs | 681 | /// ``` | COMMENT |
| LOW | rust/src/options.rs | 821 | pub queue: String, | 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 | 261 | COMMENT | |
| LOW | rust/src/flow_producer.rs | 281 | self.add_with_opts(flow, &FlowOptions::default()).await | COMMENT |
| LOW | rust/src/flow_producer.rs | 1041 | } | COMMENT |
| LOW | rust/src/queue.rs | 121 | COMMENT | |
| LOW | rust/src/queue.rs | 1241 | COMMENT | |
| LOW | rust/src/queue.rs | 1641 | /// | COMMENT |
| LOW | rust/src/queue.rs | 2301 | } | COMMENT |
| LOW | rust/src/queue.rs | 2801 | } | COMMENT |
| LOW | rust/src/redis_connection.rs | 141 | /// The connection is created with its response timeout **disabled**. | 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/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 |
| LOW | dotnet/src/BullMQ/IQueueBackend.cs | 281 | /// <summary> | COMMENT |
| LOW | dotnet/src/BullMQ/PostgresBackend.cs | 1 | using System.Text.Json; | COMMENT |
| LOW | dotnet/src/BullMQ/PostgresBackend.cs | 781 | return dd <= 0 ? new MarkerResult(Name, 0) : new MarkerResult(Name, NowMs() + dd); | COMMENT |
| LOW | dotnet/src/BullMQ/Redis/LuaScripts.cs | 1 | using System.Reflection; | COMMENT |
| LOW | dotnet/src/BullMQ/Serialization/MsgPack.cs | 1 | using System.Buffers.Binary; | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 61 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines | COMMENT |
| LOW | .github/workflows/test.yml | 461 | # continue-on-error: true | COMMENT |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | src/classes/redis-queue-backend.ts | 2741 | // rejection must not surface as an unhandled promise rejection. | COMMENT |
| LOW | src/classes/redis-queue-backend.ts | 2821 | // If the watchdog abandons this command below, its (possibly much later) | COMMENT |
| LOW | src/classes/bun-redis-client.ts | 541 | } | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 206 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 219 | except Exception: | CODE |
| LOW | python/bullmq/worker.py | 302 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 342 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 424 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 430 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 455 | except Exception as err: | CODE |
| LOW | python/bullmq/worker.py | 553 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 561 | except Exception as e: | CODE |
| LOW | python/bullmq/worker.py | 587 | except Exception as err: | CODE |
| MEDIUM | python/bullmq/worker.py | 555 | 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 | 484 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 248 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 273 | except Exception: | CODE |
| LOW | python/bullmq/backends/postgres_connection.py | 280 | 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 | 20 | 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 | 456 | # 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 |
|---|---|---|---|---|
| MEDIUM | python/bullmq/backends/postgres_backend.py | 771 | # claimable-job probe is a robust fallback (delivery of a NOTIFY that | COMMENT |
| 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 | 2752 | // To make this robust we race the blocking command against a watchdog | COMMENT |
| 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 | 420 | CODE | |
| LOW | python/bullmq/worker.py | 158 | CODE | |
| LOW | python/bullmq/worker.py | 436 | 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 | 837 | CODE | |
| LOW | python/bullmq/backends/postgres_backend.py | 748 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | python/tests/queue_test.py | 525 | # Create a worker that processes jobs slowly | COMMENT |
| MEDIUM | python/tests/queue_test.py | 557 | # 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 |
|---|---|---|---|---|
| HIGH | rust/src/flow_producer.rs | 273 | /// 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 | 253 | 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 | 9827 | // 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 | 9827 | // 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 | 544 | CODE | |
| LOW | python/bullmq/scripts.py | 673 | CODE | |
| LOW | python/bullmq/scripts.py | 682 | 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 |