Receber por email
← Voltar para o catálogo

magento-events-cron

Implement Magento 2 events, observers, cron jobs, and message queues. Use when building event-driven logic, scheduled tasks, or asynchronous processing.

34estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add OrcaQubits/agentic-commerce-skills-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/magento-events-cron/svg)](https://www.skillteca.com.br/skills/magento-events-cron)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Magento 2 Events, Observers, Cron & Message Queues

Before writing code

Fetch live docs:

  1. Fetch https://developer.adobe.com/commerce/php/development/components/events-and-observers/ for events/observers guide
  2. Web-search site:developer.adobe.com commerce php development components message-queues for message queue guide
  3. Web-search site:developer.adobe.com commerce php development components cron for cron development

Events and Observers

How Events Work

Publish-subscribe pattern: code dispatches named events, and observers respond.

Dispatching Events

$this->eventManager->dispatch('event_name', ['key' => $value]);

EventManagerInterface is injected via constructor.

Observer Configuration (events.xml)

Observers are bound to events in etc/events.xml (global), etc/frontend/events.xml, or etc/adminhtml/events.xml:

  • event name — event to observe
  • observer name — unique identifier
  • instance — observer class (fully qualified)

Observer Classes

  • Located in Observer/ directory
  • Implement Magento\Framework\Event\ObserverInterface
  • Single method: execute(Observer $observer) — access event data via $observer->getEvent()

Area Scoping

  • etc/events.xml — runs in ALL areas
  • etc/frontend/events.xml — storefront only
  • etc/adminhtml/events.xml — admin only
  • Use the most specific scope to avoid unintended side effects

Common Events

Magento dispatches hundreds of events. Common categories:

  • catalog_product_save_before/after — product save lifecycle
  • checkout_submit_all_after — order placement
  • customer_register_success — customer registration
  • sales_order_place_after — order placed
  • controller_action_predispatch/postdispatch — request lifecycle

Cron Jobs

Configuration (crontab.xml)

Cron jobs are declared in etc/crontab.xml:

  • job name — unique identifier
  • instance — class name
  • method — method to call (usually execute)
  • schedule — cron expression (minute hour day month weekday)
  • group — cron group (default, index; Adobe Commerce also has staging, catalog_event)

Cron Class

Any class with an execute() method. No interface required. Constructor injection for dependencies.

Cron Groups

  • default — general tasks
  • index — indexer-related tasks
  • staging — staging-related tasks (Adobe Commerce only)
  • catalog_event — catalog event tasks (Adobe Commerce only)
  • Custom groups configurable in etc/cron_groups.xml

Running Cron

bin/magento cron:run           # Run all due cron jobs
bin/magento cron:install       # Install system crontab entry

Message Queues

When to Use

For asynchronous, resource-intensive, or decoupled operations. Supports AMQP (RabbitMQ) and MySQL-based queues.

Configuration Files

  • communication.xml — defines topics and request/response types
  • queue_consumer.xml — maps queues to consumer handler classes
  • queue_topology.xml — exchanges, queues, routing
  • queue_publisher.xml — defines where topics publish to

Consumer Pattern

Consumer class with a process($message) method. Started via:

bin/magento queue:consumers:start <consumer_name>

Best Practices

  • Keep observers lightweight — offload heavy work to cron or queues
  • Use area-specific events.xml to minimize scope
  • Prefer message queues over synchronous observers for slow operations
  • Use index cron group for indexer-related jobs
  • Log cron execution for debugging
  • Handle exceptions in observers gracefully — a failing observer blocks the event chain

Fetch the events/observers and cron documentation for exact XML schemas, event names, and cron expression syntax before implementing.

Compartilhar X LinkedIn