<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Der Magento Experte</title>
	<atom:link href="https://www.der-mage-experte.de/tag/parallele-verarbeitung/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.der-mage-experte.de</link>
	<description>Ihr Magento Experte &#38; Entwickler</description>
	<lastBuildDate>Wed, 14 Oct 2026 20:48:54 +0000</lastBuildDate>
	<language>de-DE</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8.6</generator>
	<item>
		<title>Parallele Ausführung eines Cronjobs verhindern</title>
		<link>https://www.der-mage-experte.de/3209/magento2-parallele-ausfuehrung-eines-cronjobs-verhindern/</link>
		<comments>https://www.der-mage-experte.de/3209/magento2-parallele-ausfuehrung-eines-cronjobs-verhindern/#comments</comments>
		<pubDate>Wed, 14 Oct 2026 19:48:15 +0000</pubDate>
		<dc:creator><![CDATA[Mex]]></dc:creator>
				<category><![CDATA[Magento Lösungen]]></category>
		<category><![CDATA[Cron-Jobs]]></category>
		<category><![CDATA[Magento 2]]></category>
		<category><![CDATA[parallele Verarbeitung]]></category>

		<guid isPermaLink="false">https://www.der-mage-experte.de/?p=3209</guid>
		<description><![CDATA[Läuft ein eigener Magento Cronjob länger als sein eingestelltes Intervall, kann der nächste Lauf bereits starten, obwohl der vorherige noch arbeitet. Bei Importen, Exporten oder anderen schreibenden Prozessen kann das schnell zu doppelter Verarbeitung oder konkurrierenden Zugriffen führen. Magento bringt&#8230;]]></description>
				<content:encoded><![CDATA[<p>Läuft ein eigener Magento Cronjob länger als sein eingestelltes Intervall, kann der nächste Lauf bereits starten, obwohl der vorherige noch arbeitet. Bei Importen, Exporten oder anderen schreibenden Prozessen kann das schnell zu doppelter Verarbeitung oder konkurrierenden Zugriffen führen.</p>
<p>Magento bringt dafür mit dem <strong>LockManagerInterface</strong> bereits einen passenden Mechanismus mit. Vor dem eigentlichen Prozess wird ein Lock gesetzt. Existiert dieser bereits, beendet sich der zweite Lauf direkt wieder.</p><pre class="crayon-plain-tag">use Magento\Framework\Lock\LockManagerInterface;

class Import
{
    public function __construct(
        private LockManagerInterface $lockManager
    ) {
    }

    public function execute(): void
    {
        $lockName = 'vendor_module_import';

        if (!$this-&gt;lockManager-&gt;lock($lockName, 0)) {
            return;
        }

        try {
            // Run import
        } finally {
            $this-&gt;lockManager-&gt;unlock($lockName);
        }
    }
}</pre><p>Der Name des Locks sollte für den jeweiligen Prozess eindeutig sein. Solange <strong>vendor_module_import</strong> gesperrt ist, kann kein zweiter Lauf mit demselben Lock gleichzeitig starten.</p>
<p>Wichtig ist das <strong>finally</strong>: Auch wenn innerhalb des Cronjobs eine Exception entsteht, wird der Lock anschließend wieder freigegeben.</p>
<p>Magento verwendet den Lock Mechanismus selbst an verschiedenen Stellen, unter anderem um parallele Prozesse voneinander fernzuhalten. Für längere eigene Cronjobs ist <strong>LockManagerInterface</strong> deshalb deutlich sauberer als eine selbst gebaute Statusdatei oder ein Flag in der Datenbank.</p>]]></content:encoded>
			<wfw:commentRss>https://www.der-mage-experte.de/3209/magento2-parallele-ausfuehrung-eines-cronjobs-verhindern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
