# Cron / ScheduledTask funktioniert nicht

**URL:** https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252
**Category:** Programmierung
**Created:** [29. November 2019 um 12:34 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252 "2019-11-29T12:34:01Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [29. November 2019 um 12:34 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/1 "2019-11-29T12:34:01Z")

</div>

Hallo!

Im Gitter Channel konnte mir leider nicht geholfen werden, daher hier mein nächster Versuch.

Und zwar bekomme ich die ScheduledTasks nicht an laufen (in einer prod. EA2 Umgebung).  
Das Beispiel unter&nbsp;[https://github.com/shopware/swag-docs-scheduled-task-plugin](https://github.com/shopware/swag-docs-scheduled-task-plugin)&nbsp;bzw.&nbsp;[https://docs.shopware.com/en/shopware-platform-dev-en/how-to/scheduled-tasks](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/scheduled-tasks)&nbsp;funktioniert bei mir auch nicht.

Ich starte die Tasks über …

```
./bin/console scheduled-task:run

```

in Kombination mit

```
./bin/console messenger:consume

```

Der Scheduled Task verbleibt als queued:

 ![https://i.imgur.com/OFkADRj.png](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/9/9598da46e07cb3f69bde5a8d3950c79ced16934b.png)  
Wenn ich ein Plugin analog dazu baue, verhält es sich identisch.  
Was muss ich tun? Die Crons sind ziemlich wichtig …

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![JonasElfering](https://avatars.discourse-cdn.com/v4/letter/j/3bc359/32.png) [@JonasElfering](https://forum.shopware.com/u/JonasElfering)
#### Post date: [2. Dezember 2019 um 10:29 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/2 "2019-12-02T10:29:28Z")

</div>

Hallo Niklas,&nbsp;

wie hast du die MessageQueue konfiguriert? Ich vermute das die Messages nicht mehr ausgelesen werden können.

Wenn du den `scheduled-task:run` command ausführst sollten Messeges in die Queue gelegt werden die dann über `messenger:consume` abgearbeitet werden.

Kannst du den&nbsp;`bin/console messenger:consume` command mall mit der `-vv` Flag starten, der sollte die Messeges die abgearbeitet werden dann in der Konsole loggen.

Viele Grüße&nbsp;  
Jonas

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [2. Dezember 2019 um 11:22 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/3 "2019-12-02T11:22:11Z")

</div>

Hi Jonas,

ich glaube das Problem bisher war, dass der messenger:consume irgendwann abraucht (MySQL server has gone away).  
Das scheint sich mit dem --time-limit flag zu lösen, damit er nicht wegfliegt.

Ich habe mein Problem jetzt gelöst, indem ich scheduled-task:run und messenger:consume hintereinander per custom storefront controller durchlaufen lassen.  
Im Prinzip wie der eine Test-Case von euch. So habe ich jetzt “quasi” die gleiche Funktionalität wie früher über backend/cron

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![Misengo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/misengo/32/21446_2.png) [@Misengo](https://forum.shopware.com/u/Misengo)
#### Post date: [20. Januar 2020 um 08:00 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/4 "2020-01-20T08:00:56Z")

</div>

Kurze Offtopic Frage - eventuell hast du das schon gelöst @TeichDatensysteme‍ . Da der contructor nicht überschrieben werden kann in der vererbten ScheduledTask Klasse, kann ich nicht über DI die Plugin Config übergeben. Wie bekomme ich den Task konfigurierbar im Backend? Oder hab ich die Cronjob/Scheduled Task Option übersehen im Backend?

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [20. Januar 2020 um 15:01 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/5 "2020-01-20T15:01:42Z")

</div>

@Misengo‍ Bisher gibt es da nichts im Backend zu, wie ich das sehe.  
Zum Cron: Also, bisher kenne ich nur das, wie es im Beispiel auch gelöst wird.

- …Task erbt von ScheduledTask

- …TaskHandler erbt vom ScheduledTaskHandler und hat den …Task als getHandlesMessages drin

- dein eig. Task Handler kann im Constructor reinbekommen was Du willst, du kannst (und sollst) den parent Constructor aufrufen, z.B.  
&nbsp;

&nbsp;

- …Task in die services.xml mit dem tag name&nbsp;

- …TaskHandler in die services.xml mit deinen Abhängigkeiten und dem tag:

Danach sollte der laufen.&nbsp;

---

<div class="post-metadata">

### Author: ![Misengo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/misengo/32/21446_2.png) [@Misengo](https://forum.shopware.com/u/Misengo)
#### Post date: [20. Januar 2020 um 15:17 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/6 "2020-01-20T15:17:45Z")

</div>

> [@TeichDatensysteme schrieb:](https://forum.shopware.com/profile/15861/TeichDatensysteme "TeichDatensysteme")
> 
> @Misengo‍ Bisher gibt es da nichts im Backend zu, wie ich das sehe.  
> Zum Cron: Also, bisher kenne ich nur das, wie es im Beispiel auch gelöst wird.
> 
> - …Task erbt von ScheduledTask
> - …TaskHandler erbt vom ScheduledTaskHandler und hat den …Task als getHandlesMessages drin
> - dein eig. Task Handler kann im Constructor reinbekommen was Du willst, du kannst (und sollst) den parent Constructor aufrufen, z.B.  
> &nbsp;
> 
> /\*\*
> 
> - StockTaskHandler constructor.
> - 
> - @param EntityRepositoryInterface $scheduledTaskRepository
> - @param SystemConfigService $systemConfigService
> - @param StockService $stockService  
> \*/
> 
> public function \_\_construct(  
> EntityRepositoryInterface $scheduledTaskRepository,  
> SystemConfigService $systemConfigService,  
> StockService $stockService)  
> {
> 
> parent::\_\_construct($scheduledTaskRepository);
> 
> $this-\>systemConfigService = $systemConfigService;  
> $this-\>stockService = $stockService;
> 
> }
> 
> &nbsp;
> 
> - …Task in die services.xml mit dem tag name&nbsp;
> 
> - …TaskHandler in die services.xml mit deinen Abhängigkeiten und dem tag:
> 
> Danach sollte der laufen.&nbsp;

Ja, das ist klar. Aber es geht **nicht** um den **Handler** , sondern um den Task, welcher am Ende ja angibt wann das Ding laufen soll über die&nbsp;getDefaultInterval()

---

<div class="post-metadata">

### Author: ![Misengo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/misengo/32/21446_2.png) [@Misengo](https://forum.shopware.com/u/Misengo)
#### Post date: [27. Januar 2020 um 05:04 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/7 "2020-01-27T05:04:28Z")

</div>

Habe die Lösung gefinden -\>&nbsp;[https://docs.shopware.com/en/shopware-platform-dev-en/internals/core/erd/shopware-core-framework-scheduledtask](https://docs.shopware.com/en/shopware-platform-dev-en/internals/core/erd/shopware-core-framework-scheduledtask)

In dieser Tabelle stehen alle Tasks mit dem Intervall. Wird vermutlich später einfach ein Backend-Modul geben, welches über die API darauf zugreift und dieses Updated.

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [27. Januar 2020 um 10:33 UTC](https://forum.shopware.com/t/cron-scheduledtask-funktioniert-nicht/63252/8 "2020-01-27T10:33:41Z")

</div>

Naja, Du hast ja ua. danach gefragt: „Da der contructor nicht überschrieben werden kann in der vererbten ScheduledTask Klasse, kann ich nicht über DI die Plugin Config übergeben.“ Darauf habe ich geantwortet 😉 Auch der Hinweis, dass im Backend aktuell noch keine Crob Übersicht ist - die Einsicht gibt es aktuell über die DB Tabelle - korrekt.
