# TaskHandler wird nicht angestossen

**URL:** <https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982>\
**Category:** Programmierung\
**Tags:** programming\
**Created:** [27. August 2024 um 10:20 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982 "2024-08-27T10:20:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [27. August 2024 um 10:20 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/1 "2024-08-27T10:20:30Z")

</div>

Hallo, verwende folgenden Code, um über die Klassen Task und Taskhander einen einfachen Schreibprozess in eine Textdatei demomäßig anzustoßen. Es funktioniert aber nicht. Die Textfile wird nicht geschrieben. Ziel ist es, eine Controller Methode des Plugins anzustoßen. Wenn aber schon der Schreibprozess in der run() nicht funktioniert…Hier der Code:

```auto
<?php declare(strict_types=1);

namespace WtProductImport\Service\ScheduledTask;

use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTask;

class ImportTask extends ScheduledTask
{
    public static function getTaskName(): string
    {
        return 'swag.example_task';
    }

    public static function getDefaultInterval(): int
    {
        return 300; // 5 minutes
    }
}

```

```auto
<?php declare(strict_types=1);

namespace WtProductImport\Service\ScheduledTask;

use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTaskHandler;
use WtProductImport\Storefront\Controller\ProductImportController;

#[AsMessageHandler(handles: ImportTask::class)]
class ImportTaskHandler extends ScheduledTaskHandler
{
    private $productImportController;

    public function __construct(ProductImportController $productImportController)
    {
        $this->productImportController=$productImportController;
    }
    public function run(): void
    {
       $path=dirname(getcwd()) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'jwt' . DIRECTORY_SEPARATOR . 'test12_tr.txt';
       file_put_contents($path,"1234");
    }
    static public function getHandledMessages(): iterable {
        return [ImportTask::class];
    }
}
```

---

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [27. August 2024 um 10:23 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/2 "2024-08-27T10:23:13Z")

</div>

Die services.xml ist hier:

```auto
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <service id="WtProductImport\Storefront\Controller\ProductImportController" public="true">
            <argument type="service" id="Shopware\Storefront\Page\GenericPageLoader"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="WtProductImport\classes\Database"/>
            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
            <call method="setTwig">
                <argument type="service" id="twig"/>
            </call>
        </service>
        <service id="WtProductImport\classes\Database">
            <argument type="service" id="product.repository"/>
            <argument type="service" id="property_group.repository"/>
            <argument type="service" id="customer.repository"/>
            <argument type="service" id="country.repository"/>
            <argument type="service" id="salutation.repository"/>
            <argument type="service" id="customer_group.repository"/>
            <argument type="service" id="payment_method.repository"/>
            <argument type="service" id="product_manufacturer.repository"/>
            <argument type="service" id="property_group_option.repository"/>
            <argument type="service" id="delivery_time.repository"/>
        </service>
        <service id="WtProductImport\Service\ScheduledTask\ImportTask">
            <tag name="shopware.scheduled.task"/>
        </service>
        <service id="WtProductImport\Service\ScheduledTask\ImportTaskHandler">
            <argument type="service" id="WtProductImport\Storefront\Controller\ProductImportController"/>
            <argument type="service" id="scheduled_task.repository"/>
            <tag name="messenger.message_handler"/>
        </service>
    </services>
</container>

```

und so versuche ich, das Ganze anzustoßen:

 ![image](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/d/7/d778abe1e8573610c2ac6b8dd77bf7b271c91d92.png)

Der Status des Tasks ist in der Datenbank auf scheduled. Warum wird die Textdatei in der run() Methode nicht erstellt?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [27. August 2024 um 12:35 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/3 "2024-08-27T12:35:50Z")

</div>

> [@thomas.kipp](#):
>
> `public function run()`

Vielleicht ein Hilfsmittel: Ich habe mir zum Test unter run() eine Mail-Funktion gepackt. Wenn ich eine Mail bekomme, weiß ich zumindest das der Task funktioniert.

Bei der Datei könnten ggf. Rechte noch eine Rolle spielen oder Ordner/Pfad passt nicht.

---

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [27. August 2024 um 14:02 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/4 "2024-08-27T14:02:55Z")

</div>

Rechte spielen unter XAMPP keine Rolle, und der Pfad stimmt. Es ist der Pfad zum Verzeichnis {root\_dir}/config\jwt  
Und Mails werden unter XAMPP standardmäßig nicht verschickt, ist ja nur der localhost…

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [27. August 2024 um 14:57 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/5 "2024-08-27T14:57:32Z")

</div>

Wenn ich mich recht erinnere, habe ich in der Entwickler-Dokumentation gelesen, dass Shopware unter XAMPP nicht läuft. Zumindest nicht ohne manuelle Eingriffe in die Konfiguration.

Daher ist das hier sehr wahrscheinlich kein „Shopware Problem“, sondern ein „Notwendige Anpassungen fehlen, damit Shopware auf einer nicht dafür konzipierten Plattform läuft Problem“.

Nur das so am Rande, falls andere den Fehler nicht reproduzieren können.

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [28. August 2024 um 06:39 UTC](https://forum.shopware.com/t/taskhandler-wird-nicht-angestossen/104982/6 "2024-08-28T06:39:00Z")

</div>

> [@thomas.kipp](#):
>
> Rechte spielen unter XAMPP keine Rolle

Oh Sorry, hab gar nicht gesehen dass es unter XAMPP laufen soll.
