Wie kann ich einen Hintergrunddienst im Administrator -Backend ausführen?
-
16-10-2019 - |
Frage
Ich bemerkte Folgendes in Mage_GoogleShopping
:
- Ich kann Google Produkte hinzufügen
- Jetzt wird eine Info angezeigt "Synchronisation ist im Gange".
- Ich kann die Backend -Seite verlassen und wenn ich später zurückkomme, war der Prozess abgeschlossen.
Wie kann dies in einer eigenen Erweiterung implementiert werden?
Ich glaube nicht, dass dies von einem Server -Side -Cron -Job gemacht wird, da der Job sehr bald nach dem Auftreten von "Submit" zu beginnen scheint.
Und es kann nicht im Webserver -Prozess erfolgen, da ich den Browser schließen kann und seine Arbeit fortsetzt.
Lösung
Höchstwahrscheinlich ist der Schlüssel in Zeile 123 von controllers/Adminhtml/Googleshopping/ItemsController.php
:
ignore_user_abort(true);
Andere Tipps
Ich habe mich nie auf mage_googleshoping angesehen, aber soweit ich weiß, wird der Browser die Anfrage, die verarbeitet wird, nicht stoppt (Dies Ich würde meine Vermutung unterstützen), daher wäre es einfach, einen AJAX -Aufruf zu implementieren, der mit der Synchronisation beginnen und eine Antwort zurückgeben würde, wenn er endet, damit der Browser ihn dem Benutzer anzeigen kann.