Skip to content
This repository

Memory spooling not working within Commands #23

Open
Sgoettschkes opened this Issue September 18, 2012 · 13 comments

8 participants

Sebastian Christophe Coevoet Christian Scheb Iwan van Staveren Jérôme Poskin Kevin Bond Konstantin.Myakshin mcfedr
Sebastian

Setting swiftmailer up with the memory spooling does not work as the kernel seems to never terminate so the onKernelTerminate is never triggered.

I experienced this with the standard setup of symfony 2.1 (the configuration files are from RC1) where none of my emails sent through a command got sent. Removing the spooling options from my configuration, emailing went fine.

I don't know if it's possible to change the console to terminate the kernel so the emails get sent. This would of course be best.
If this is not possible, maybe the documentation should state this and offer ways to work around this.

Christophe Coevoet
Collaborator

It cannot terminate the kernel as this requrie a Request and a Response.

The way to send emails from a command is to either flush the memory spool by hand or to create a separate environment where the spool is disabled and use it to run the command.

Once symfony/symfony#3889 is merged, it should become possible to flush the memory spool automatically in the console too, but this will be for 2.2, not for 2.1.x

Sebastian

Ok, so would it be good to add this to the documentation, especially since symfony 2.1 ships with the memory spooling as a default? If so I would see if I can find some time to add a description of the problem and a code example of how to sent spooled messages.

Christian Scheb

Took me about an hour to figure out this problem. Would be really good if it was documented somewhere, e.g. in the symfony console documentation.

@Sgoettschkes
Here's an example how to force a flush of the spool memory: http://sgoettschkes.blogspot.de/2012/09/symfony-21-commands-and-swiftmailer.html

Iwan van Staveren

Please update the doc. I also spend more then one hour on it.

Sebastian

@Sheb that's actually my blog post
@istaveren I'll add that to my todo. But it will take me some time, so if anybody else want to add it to the docs, please go ahead.

Sebastian Sgoettschkes referenced this issue in symfony/symfony-docs October 23, 2012
Closed

New cookbook console/sending_emails #1846

Jérôme Poskin

@Scheb Great that save my day :+1:

Kevin Bond

memory spooling is also not working with monolog

Sebastian

I don't think this is related to this issue, is it? Depending on what you think is the source of this bug, could you please report it to either monolog or the monolog bundle.

Kevin Bond

I believe it is related to #6 - when spooling is active, emails are not sent by monolog. There needs to be an ability to have "high priority" emails that bypass the spool.

Konstantin.Myakshin
Koc commented August 23, 2013

So events added to console commands. How about implement flushing?

mcfedr

With this in mind, it would also be great to have an option to disable spooling, with long running commands its not desirable to waiting until the command is about to exit before sending mails

Christophe Coevoet
Collaborator
stof commented April 05, 2014

@mcfedr remove the spool configuration from your config, and it will disable the spooling

mcfedr

@stof thanks! that is not at all obvious from the docs btw :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.