Skip to content
Back to skills

Magento Events Cron

ASecurity

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

  • 39 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 29, 2026
ai-agentsgophpbashsqlexpressdebuggingfrontenddocumentation

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add OrcaQubits/agentic-commerce-skills-plugins --skill magento-events-cron --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Magento Events Cron?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Magento Events Cron
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/orcaqubits-magento-events-cron/badge)](https://www.skillsdirectory.com/skills/orcaqubits-magento-events-cron)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: magento-events-cron
description: >
  Implement Magento 2 events, observers, cron jobs, and message queues. Use
  when building event-driven logic, scheduled tasks, or asynchronous processing.
---

# 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

```php
$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

```bash
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:
```bash
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…