¿Cómo puedo ejecutar un servicio en segundo plano en el backend de administración?

magento.stackexchange https://magento.stackexchange.com/questions/396

  •  16-10-2019
  •  | 
  •  

Pregunta

Me di cuenta lo siguiente en Mage_GoogleShopping:

  • I puede añadir productos a Google
  • Ahora se visualiza una información "Sincronización en curso"
  • Me puede salir de la página de fondo y si vuelvo más tarde, el proceso se ha terminado.

¿Cómo se puede implementar en una extensión propia?

No creo que se realiza mediante una tarea programada lado del servidor, porque el trabajo parece comenzar muy pronto después de golpeo "submit".

Y no se puede hacer en el proceso de servidor web, porque puedo cerrar el navegador y que continúa su trabajo.

¿Fue útil?

Solución

Most likely the key is on line 123 of controllers/Adminhtml/Googleshopping/ItemsController.php:

ignore_user_abort(true);

Otros consejos

I never looked at Mage_GoogleShopping but as far as I know closing the browser won't stop the request that is being processed (this would support my guess) so it would be simple to implement an ajax call that would start synchronization and return a response when it would end so that the browser can show it to the user.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top