# cronjob.xml von einem Plugin: Wie legt man Controller für die Action fest?

**URL:** <https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242>\
**Category:** Programmierung\
**Created:** [14. April 2017 um 10:35 UTC](https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242 "2017-04-14T10:35:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [14. April 2017 um 10:35 UTC](https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242/1 "2017-04-14T10:35:26Z")

</div>

Hallo Zusammen,

ich möchte ein mal pro Tag früh morgens (z.B. um 6:00 Uhr) eine Funktion von meinem Plugin ausführen. Dafür&nbsp;habe ich in meinem Plugin Resources/cronjob.xml das folgende:

```
        EET-Daten importieren
        importEET
        true
        86400
        true

```

Soweit ich verstehe, gibt es keinen Weg einen Controller hier festzulegen, dem die Action “importEET” gehört. Wie soll ich dann vorgehen? Wie versteht Shopware welche von der möglichen gleichnahmigen Funktionen in unterschiedlichen Dateien des Plugins aufzurufen?

(Und noch eine Zusatzfrage, wenn ich darf: wie sage ich dem System an welcher Uhrzeit soll der Job aufgeführt werden?)

Danke im Vorab!

Roman

---

<div class="post-metadata">

**Author:** ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)\
**Post date:** [16. April 2017 um 08:37 UTC](https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242/2 "2017-04-16T08:37:45Z")

</div>

Du musst einen Subscriber erstellen der auf das Event&nbsp;Shopware\_CronJob\_importEET hört und da definieren welche Aktion ausgeführt werden soll.

Zu welcher Uhrzeit das ausgeführt werden soll kannst du in Shopware nicht direkt beeinflussen. Du kannst nur ein Intervall d angeben. Das Cronjob-Modul von Shopware musst du dann ja eh von aussen irgendwie anstossen. Da könnte man dann definieren um welche Uhrzeit das geschehen soll. Über die console kann man auch gezielt einzelne CronJobs anstossen.

---

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [16. April 2017 um 10:57 UTC](https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242/3 "2017-04-16T10:57:08Z")

</div>

Danke dir, t2oh4e, das macht alles deutlicher.

Es sieht so aus, das per Console meine Sache anzustossen wäre für mich das richtige. Alles was mein Plugin tun muss ist diese Funktion auszuführen. Die Funktion importiert daten aus einem per FTP früher hochgeladenen CSV-Datei. Die Native-Backed-Werkzeug für solche Importe passt uns leider nicht, deshalb bastle ich ein Plugin dafür. Dem träg auch bei, dass der Datei relativ groß ist und ich denke, es wird viele Zeit benötigt, um alles zu bearbeiten und zu importieren. Und innerhalb der Shell gibt es keine Begrenzungen was die Script-Laufzeit betrifft.

Es muss, soweit ich sehe, ausreichen, wenn ich aufruf eines Shopware-CronJobs per Betriebsystem-CronJob etwa so konfiguriere (wenn ich um 6.00 Uhr jeden Tag ausfühern möchte)&nbsp;:

```
 \* 6 \* \* \* php /home/myshopwareinstallation/bin/console sw:cron:run ACTION-NAME -f 

```

(nach&nbsp;[http://community.shopware.com/Cronjobs\_detail\_1102.html#Aufruf\_per\_Shell\_.2F\_Konsole](http://community.shopware.com/Cronjobs_detail_1102.html#Aufruf_per_Shell_.2F_Konsole) )

Ich bin mir aber nicht sicher was ich statt&nbsp;ACTION-NAME haben soll. Soweit ich verstehe, mit meinem cronjob.xml wird im System das Event „Shopware\_CronJob\_importEET“ irgendwie registriert… Verstehe ich richtig, dass in cronjob.xml unter allen Plugins niemals wiederholt werden muss? Dann muss ACTION-NAME in meinem Fall „importEET“ sein?

---

<div class="post-metadata">

**Author:** ![rreimche](https://avatars.discourse-cdn.com/v4/letter/r/71c47a/32.png) [@rreimche](https://forum.shopware.com/u/rreimche)\
**Post date:** [16. April 2017 um 11:01 UTC](https://forum.shopware.com/t/cronjob-xml-von-einem-plugin-wie-legt-man-controller-fur-die-action-fest/45242/4 "2017-04-16T11:01:01Z")

</div>

Danke dir, t2oh4e, das macht alles deutlicher.

Es sieht so aus, das per Console meine Sache anzustossen wäre für mich das richtige. Alles was mein Plugin tun muss ist diese Funktion auszuführen. Die Funktion importiert daten aus einem per FTP früher hochgeladenen CSV-Datei. Die Native-Backed-Werkzeug für solche Importe passt uns leider nicht, deshalb bastle ich ein Plugin dafür. Dem träg auch bei, dass der Datei relativ groß ist und ich denke, es wird viele Zeit benötigt, um alles zu bearbeiten und zu importieren. Und innerhalb der Shell gibt es keine Begrenzungen was die Script-Laufzeit betrifft.

Es muss, soweit ich sehe, ausreichen, wenn ich aufruf eines Shopware-CronJobs per Betriebsystem-CronJob etwa so konfiguriere (wenn ich um 6.00 Uhr jeden Tag ausfühern möchte)&nbsp;:

```
* 6 * * * php /home/myshopwareinstallation/bin/console sw:cron:run ACTION-NAME -f

```

(nach&nbsp;[http://community.shopware.com/Cronjobs\_detail\_1102.html#Aufruf\_per\_Shell\_.2F\_Konsole](http://community.shopware.com/Cronjobs_detail_1102.html#Aufruf_per_Shell_.2F_Konsole) )

Ich bin mir aber nicht sicher was ich statt&nbsp;ACTION-NAME haben soll. Soweit ich verstehe, mit meinem cronjob.xml wird im System das Event “Shopware\_CronJob\_importEET” irgendwie registriert… Verstehe ich richtig, dass in cronjob.xml unter allen Plugins niemals wiederholt werden muss? Dann muss ACTION-NAME in meinem Fall “importEET” sein? Also:

```
* 6 * * * php /home/myshopwareinstallation/bin/console sw:cron:run importEET -f

```

Denke ich richtig, dass die obengenannte Console-Command das genannte Event feuert und das ruft&nbsp;danach die im Subscriber genannte Aktion auf?&nbsp;
