Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Periodic Queue Driver Bundle Laravel Package

mcfedr/periodic-queue-driver-bundle

Symfony bundle adding a periodic queue driver so queued jobs run on a fixed schedule through your existing queue. Set intervals per job, let workers pick up due tasks automatically, and avoid separate cron entries for recurring work.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — fundamental mismatch. Despite the framing, this is not a Laravel package. The -bundle suffix and the mcfedr namespace identify it as a Symfony bundle that plugs into mcfedr/queue-manager-bundle, itself a Symfony bundle. It extends that bundle's driver interface and expects Symfony's DI container, bundle registration, and kernel bootstrapping. Laravel's package discovery, service providers, and queue driver contract (Illuminate\Queue\Connectors\ConnectorInterface) are a different abstraction entirely. There is no adapter shim, and writing one means reimplementing the driver against Laravel's Queue contract rather than integrating this package — at which point we are using it as reference reading, not as a dependency.

Integration feasibility — low. A Laravel integration would require either (a) installing Symfony's DI/HttpKernel alongside Laravel to host a bundle, which is architecturally indefensible, or (b) extracting the periodic-scheduling logic — likely a few hundred lines — and porting it. Neither is "integration." Any evaluation should treat this as a pattern to borrow, not a component to install.

Technical risk — high, on every axis.

Signal Reading
Last release 2017-09-29 ~8 years unmaintained; targets PHP 5.6/7.0 and Symfony 2/3
1 star, 0 dependents No production evidence, no downstream bug reports, no community triage
Composer resolution Modern PHP 8.x / Symfony 6–7 constraint solving will almost certainly fail
Security posture No patching path; any CVE in the transitive Symfony graph is unowned
Bus factor Effectively 1, with no evidence of recent activity

MIT licensing means we can fork, but forking an abandoned 2017 Symfony bundle into a Laravel codebase transfers the entire maintenance burden to us on day one.

Key questions for the requester:

  1. Do we operate any Symfony services, or is this purely a Laravel estate? If purely Laravel, the answer is already no.
  2. What capability is actually wanted — recurring/scheduled job execution, or a pluggable queue-driver abstraction? Laravel ships the former natively (Schedule::job, Schedule::call) and the latter via its queue contract.
  3. Is there a specific behavior in this driver (e.g., periodic re-enqueue semantics, tick-based scheduling) that Laravel's scheduler genuinely does not express? Ask for a concrete use case, not a category.
  4. Who would own a fork, and is that person's time cheaper than configuring schedule:run under cron or Supervisor?
  5. Was this surfaced by a dependency scanner or an actual engineering need? The 0.035 score and 1 star suggest the former.

Verdict: Do not adopt. Reject at intake and redirect to Laravel's native scheduler plus the queue system, or a maintained scheduler-monitoring package for observability.

Integration Approach

Stack fit — none out of the box. Target stack is PHP/Laravel with a queue backend (Redis/SQS/database) and cron or Supervisor for the scheduler process. This package assumes Symfony full-stack conventions. There is no overlap in extension points: Laravel drivers implement Illuminate\Contracts\Queue\Queue; this package implements a Symfony bundle driver interface. Bridging them is a rewrite, not a wrapper.

Migration path. Two honest options:

  • Recommended — reimplement the capability. Build periodic execution on app/Console/Kernel.php (->everyMinute(), ->withoutOverlapping(), ->onOneServer()) dispatching jobs onto the existing queue. This is a half-day of work, is first-class supported, and inherits Laravel's onOneServer locking, overlap prevention, and failed-job handling for free.
  • Contingency — logic port. If a specific scheduling semantic from this bundle is genuinely required, timebox a spike to read the source and port the algorithm into a Laravel job or command. Do not carry the dependency.

Compatibility. Assume broken. PHP 8.1+ will trip on deprecated syntax and typed-property assumptions; Symfony 6/7 removed the bundle-era APIs this depends on. Even a legacy-compatible install would pin the application to an EOL framework branch — a supply-chain liability in a modern Laravel app.

Sequencing.

  1. Week 0: Close the intake ticket with the framework-mismatch finding; confirm the underlying requirement with the requester.
  2. Week 1: Prototype the equivalent using Laravel's scheduler against a non-production queue; document parity against whatever behavior was requested.
  3. Week 2: Add scheduler observability (schedule:list, heartbeat monitoring, alerting on missed runs) and one-server locking.
  4. Close out: Record the decision and rationale so the same package is not re-proposed by the next scanner sweep.

Total cost of the correct path is measured in days. Total cost of the package path is unbounded.

Operational Impact

Maintenance. Adopting this package means owning it. There will be no upstream fixes, no PHP 8.x compatibility patches, no Symfony/Laravel version bumps. Every future framework upgrade becomes a manual merge against a 2017 codebase. For a scheduler sitting on the critical path of job execution, that is a recurring tax with no ceiling.

Support. None. No maintainer responsiveness, no issue triage, no security advisories, no vendor escalation. Internal on-call becomes the sole support tier for a component we did not write and cannot easily reason about. The 0 dependents figure is not reassuring — it means nobody has stress-tested this in production and published the failure modes.

Scaling. Periodic drivers have well-known scaling hazards, and this one's documentation is thin enough that we cannot confirm how it handles them: what happens on tick drift, whether a missed tick is replayed or dropped, and whether concurrent workers can double-execute the same period. In a multi-node deployment, absent an explicit distributed lock, periodic jobs duplicate. Laravel's onOneServer() solves this with a documented atomic lock; this driver offers no comparable, verifiable guarantee.

Failure modes to expect.

  • Silent missed executions — scheduler process down or tick skipped, no dead-letter, no alert.
  • Duplicate runs — multiple nodes each firing the period.
  • Overlapping executions — a slow job re-entered on the next tick, compounding load.
  • Composer resolution failure — the most likely outcome, discovered at CI time rather than in design review.
  • Abandonment drift — the component quietly diverges from the framework until an upgrade forces a rewrite under deadline pressure.

Ramp-up. Deceptively low, then sharply high. The code volume is small, so an engineer will initially estimate this as easy. The real cost is archaeology: reverse-engineering undocumented 2017 scheduling semantics with no tests, no changelog, and no reference deployments. Expect the estimate to be wrong by a multiple, and expect the resulting implementation to be understood by exactly one person.

Bottom line for the TPM: this is a low-signal artifact from an automated scan, not a viable dependency. The correct decision is to reject it, capture the underlying scheduling requirement, and satisfy it with Laravel's native scheduler — which is supported, observable, and already installed.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager