Home › Forums › Newsletter Plugin Support › Why so slow delivering?
- This topic has 33 replies, 2 voices, and was last updated 9 years, 6 months ago by
BuckoA51.
-
AuthorPosts
-
June 21, 2013 at 1:14 pm #8574
BuckoA51
ParticipantHi,
I’m sending out my very first Newsletter with WordPress and Newsletter this month, after switching from SBI. I have about 1200 subscribers and I’m using Mandrils free plan. I set the max delivery amount to 250 per hour and started the delivery at around 11:15 local time….
..It’s now 12:15 local time and Newsletter has only delivered 20 of my e-mails?! At this rate it is going to take days before everyone gets their newsletter. I have configured Cron jobs as per the help file, is there something else I might have missed?
June 21, 2013 at 2:46 pm #8576BuckoA51
ParticipantTurned on logging and in the log files I see this a lot:- 10:10:11 – ERROR – 41334560 – Blocked by transient newsletter_main_engine set 275 seconds ago
21-06-2013Not really got any idea what that means though… 🙁
June 21, 2013 at 5:10 pm #8579Stefano
KeymasterThat is not a real error, don’t worry. Are you sure the cron is triggered oin the right way?
If you enable the log to debug level and send me the log I can better check the problem. It should report how many times the internal job is ran.
Stefano.
(Of course send me the log via mail at stefano@satollo.net)
June 21, 2013 at 5:17 pm #8584BuckoA51
ParticipantI followed the help file and added cron job as instructed, that got rid of the warning that cron wasn’t working. I’ll let it run a little longer now log is set to debug then forward the log to you, thank you.
June 21, 2013 at 6:54 pm #8585BuckoA51
ParticipantHave now e-mailed my log file, look out for a message from mattb at top-windows-tutorials.com I didn’t notice until now but I see 21-06-2013 15:45:18 – DEBUG – 41594616 – limits_exceeded> Setting the limits for the first time
21-06-2013 15:45:18 – DEBUG – 41594664 – limits_exceeded> Max number of emails can send: 20Why is this 20 when I’ve set it to 250?
June 22, 2013 at 12:35 pm #8590Stefano
KeymasterThat notice is about the max number of email per run, there are 12 runs per hour.
Stefano.
June 22, 2013 at 12:36 pm #8591Stefano
KeymasterHi, I reaplied via email, too, the wget setup seems not correct. Which is your blog url?
Stefano.
June 23, 2013 at 12:57 am #8593BuckoA51
ParticipantThank you for taking the time to help me. My blog URL is http://www.top-windows-tutorials.com/ – I put the cron job address in so as to make sure that it would not be redirected. I believe it is right because Newsletter stopped telling me there was a problem, but of course I may have overlooked something so any suggestions will really help.
June 24, 2013 at 8:27 am #8596Stefano
KeymasterHi, the acall to the wp-cron.php is not working on your blog, it gives back a 404. Probably your administration side is not:
http://www.top-windows-tutorials.com/wp-admin
but you have the blog installed in a subfolder. Right?
So the call to the wp-cron.php should look like:
http://www.top-windows-tutorials.com/sub-folder/wp-cron.php
Stefano.
July 2, 2013 at 1:19 pm #8670BuckoA51
ParticipantOk I have changed it, I have another newsletter to go out on the 10th so I will let you know if there is any improvement, thanks again.
July 10, 2013 at 1:20 pm #8716BuckoA51
ParticipantNo joy, still exceptionally slow sending, any other ideas?
July 10, 2013 at 2:30 pm #8717Stefano
KeymasterHi, can you send me the exact cron call you configured? Did you used the wget commend? Can you test it to see if it is working?
Stefano.
July 10, 2013 at 5:47 pm #8721BuckoA51
ParticipantHi, certainly, the command is:-
wget –delete-after http://www.top-windows-tutorials.com/site/wp-cron.php
I am not sure how to test it? I know that when I set it up the warning in Newsletter disappeared. It’s set to run every 5 minutes (Minute */5).
July 10, 2013 at 11:51 pm #8723Stefano
KeymasterOk, the wget seems correct. But do you experience a slow delivery or something else (for example the newsletter starts too late)?
In the log do you still have “limit exceeded”?
Stefano.
July 11, 2013 at 12:40 am #8725BuckoA51
ParticipantSlow delivery, as in only sending a few e-mails per hour instead of the limit I have set. I saw this in the log today, is something telling Newsletter to reset its send limits?:-
Starting
10-07-2013 09:32:31 – DEBUG – 41236048 – hook_newsletter> Emails found in sending status: 1
10-07-2013 09:32:31 – DEBUG – 41236384 – hook_newsletter> Sending email 3
10-07-2013 09:32:31 – DEBUG – 41459336 – limits_exceeded> Setting the limits for the first time
10-07-2013 09:32:31 – DEBUG – 41459384 – limits_exceeded> Max number of emails can send: 20
10-07-2013 09:32:31 – DEBUG – 41458000 – Replace start
10-07-2013 09:32:31 – DEBUG – 41546768 – Replace endI have max e-mails per hour set to 250 that’s under what my SMTP server can handle.
July 11, 2013 at 10:18 pm #8738Stefano
Keymaster250 email per hour and 20 email per run (12 runs per hour) are correct numbers. If they are not respected, probably the wget does not work. Try to remove the –delete and look at the wp-cron.php file that the command should generate.
August 3, 2013 at 12:33 pm #8946BuckoA51
Participantok I did that, the wp-cron.php file was created, do you want me to post the contents?
August 3, 2013 at 3:17 pm #8949Stefano
KeymasterNo, the wp-cron.php should be empty is does not contain valuable information. So it’s better to enable the loggin of newsletter at least to the “normal” level (see the diagnostic panel) so we can look at the log file generated (wp-content/logs).
August 3, 2013 at 4:28 pm #8951BuckoA51
ParticipantThe cron file is definitely not empty. I have log level set to debug already, what should I do next?
August 3, 2013 at 4:37 pm #8952Stefano
KeymasterNot empty? This is not ok. Can you report me the content?
August 3, 2013 at 5:20 pm #8953BuckoA51
Participantof course:-
<?php /** * WordPress Cron Implementation for hosts, which do not offer CRON or for which * the user has not set up a CRON job pointing to this file. * * The HTTP request to this file will not slow down the visitor who happens to * visit when the cron job is needed to run. * * @package WordPress */ ignore_user_abort(true); if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') ) die(); /** * Tell WordPress we are doing the CRON task. * * @var bool */ define('DOING_CRON', true); if ( !defined('ABSPATH') ) { /** Set up WordPress environment */ require_once('./wp-load.php'); } // Uncached doing_cron transient fetch function _get_cron_lock() { global $_wp_using_ext_object_cache, $wpdb; $value = 0; if ( $_wp_using_ext_object_cache ) { // Skip local cache and force refetch of doing_cron transient in case // another processs updated the cache $value = wp_cache_get( 'doing_cron', 'transient', true ); } else { $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) ); if ( is_object( $row ) ) $value = $row->option_value; } return $value; } if ( false === $crons = _get_cron_array() ) die(); $keys = array_keys( $crons ); $gmt_time = microtime( true ); if ( isset($keys[0]) && $keys[0] > $gmt_time ) die(); $doing_cron_transient = get_transient( 'doing_cron'); // Use global $doing_wp_cron lock otherwise use the GET lock. If no lock, trying grabbing a new lock. if ( empty( $doing_wp_cron ) ) { if ( empty( $_GET[ 'doing_wp_cron' ] ) ) { // Called from external script/job. Try setting a lock. if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) ) return; $doing_cron_transient = $doing_wp_cron = sprintf( '%.22F', microtime( true ) ); set_transient( 'doing_cron', $doing_wp_cron ); } else { $doing_wp_cron = $_GET[ 'doing_wp_cron' ]; } } // Check lock if ( $doing_cron_transient != $doing_wp_cron ) return; foreach ( $crons as $timestamp => $cronhooks ) { if ( $timestamp > $gmt_time ) break; foreach ( $cronhooks as $hook => $keys ) { foreach ( $keys as $k => $v ) { $schedule = $v['schedule']; if ( $schedule != false ) { $new_args = array($timestamp, $schedule, $hook, $v['args']); call_user_func_array('wp_reschedule_event', $new_args); } wp_unschedule_event( $timestamp, $hook, $v['args'] ); do_action_ref_array( $hook, $v['args'] ); // If the hook ran too long and another cron process stole the lock, quit. if ( _get_cron_lock() != $doing_wp_cron ) return; } } } if ( _get_cron_lock() == $doing_wp_cron ) delete_transient( 'doing_cron' ); die();
August 5, 2013 at 12:51 pm #8962Stefano
KeymasterNo, this is the file which contain the WordPress code. When you “call” that file WordPress execute it and return a blank page.
If you set up the wget call, wget will save a copy of the result in a file named wp-cron.php (the same name of the called file).
Probably it saves it on your account root, you should ask the provider.
Stefano.
August 5, 2013 at 1:01 pm #8963BuckoA51
ParticipantSo there should be two files called wp-cron.php? I’ve looked all over with my FTP client and I can only find that one, does that mean the cron job isn’t working?
August 5, 2013 at 1:41 pm #8964Stefano
KeymasterHi I don’t know how the cron jobs work on your site. Can you ask the provider to set up a wget call every five minutes for the file wp-cron.php?
Stefano.
August 10, 2013 at 11:28 am #9007BuckoA51
ParticipantI found the wp-cron.php files, there are now a ton of them! Here is the contents of one:-
<div class="wrap"><h2>Sucuri SiteCheck Malware Scanner</h2><h3><img style="position:relative;top:5px" height="22" width="22" src=" http://www.top-windows-tutorials.com/site/wp-content/plugins/sucuri-scanner/images/ok.png" /> No malware was identified</h3><p><strong>Malware:</strong> No.</p><p><strong>Malicious javascript:</strong> No.</p><p><strong>Malicious iframes:</strong> No.</p><p><strong>Suspicious redirections (htaccess):</strong> No.</p><p><strong>Blackhat SEO Spam:</strong> No.</p><p><strong>Anomaly detection:</strong> Clean.</p><i>More details here <a href="http://sitecheck.sucuri.net/scanner/?&scan=http://www.top-windows-tutorials.com">http://sitecheck.sucuri.net/scanner/?&scan=http://www.top-windows-tutorials.com</a></i><hr /> <h3><img style="position:relative;top:5px" height="22" width="22" src=" http://www.top-windows-tutorials.com/site/wp-content/plugins/sucuri-scanner/images/ok.png" /> Site blacklist-free</h3><b>CLEAN: </b>Domain clean by Google Safe Browsing: top-windows-tutorials.com <a href=''>http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=top-windows-tutorials.com</a><br /><b>CLEAN: </b>Domain clean by Norton Safe Web: top-windows-tutorials.com <a href=''>http://safeweb.norton.com/report/show?url=top-windows-tutorials.com</a><br /><b>CLEAN: </b>Domain clean on Phish tank: top-windows-tutorials.com <a href=''>http://www.phishtank.com/</a><br /><b>CLEAN: </b>Domain clean on the Opera browser: top-windows-tutorials.com <a href=''>http://opera.com/</a><br /><b>CLEAN: </b>Domain clean by SiteAdvisor: top-windows-tutorials.com <a href=''>http://www.siteadvisor.com/sites/top-windows-tutorials.com</a><br /><b>CLEAN: </b>Domain clean on Sucuri IP/URL malware blacklist: top-windows-tutorials.com <a href=''>http://labs.sucuri.net/?malware</a><br /><b>CLEAN: </b>Domain clean by the Sucuri Malware Labs blacklist: top-windows-tutorials.com <a href=''>http://labs.sucuri.net/?blacklist=top-windows-tutorials.com</a><br /><b>CLEAN: </b>Domain clean on Yandex (via Sophos): top-windows-tutorials.com <a href=''>http://www.yandex.com/infected?url=top-windows-tutorials.com&l10n=en</a><br /><hr /> <h3><img style="position:relative;top:5px" height="22" width="22" src=" http://www.top-windows-tutorials.com/site/wp-content/plugins/sucuri-scanner/images/ok.png" /> System info (WordPress upgraded)</h3><b>Site:</b> http://www.top-windows-tutorials.com (69.89.31.96 )<br /> <b>WordPress: </b> 3.5.1<br /> <b>PHP: </b> 5.3.14<br /> Running on: Apache<br /> <br /><br /> <b>If you have any questions about these scan results, or this plugin, contact us at support@sucuri.net or visit <a href="http://sucuri.net">http://sucuri.net</a></b> <br /> </div>
So cron jobs are working but newsletter still delivers really slowly, any more suggestions? 🙁
August 10, 2013 at 5:57 pm #9008Stefano
KeymasterUhm, usually a plugin should not generated output on wp-cron.php call, and the output you reported seems a piece of an administrative page.
Have you the sucuri plugin installed?
August 10, 2013 at 6:11 pm #9009BuckoA51
ParticipantYes I have “FV Sucuri SiteCheck Scanner Cron” plugin installed.
There are a bunch of other wp-cron files that are empty, but that first one had that content.
Sending another newsletter today, it’s managed 160 messages in about 7 hours… really really stumped by this.
August 10, 2013 at 6:19 pm #9010Stefano
KeymasterSo is the wp-cron is coorectly called but newsletter delivery engine is not triggered I think one of your plugin is blocked it. Try to setup a greater speed on newsletter min configuration,.
You can enable the logs to debug on newsletter diagnostic panel and look at the generated log: you should see a “send” every 5 minutes, if the wp-cron is called every five minutes.
August 10, 2013 at 7:57 pm #9011BuckoA51
ParticipantNope, still slow even after upping the speed. I keep seeing this in the log file
10-08-2013 17:32:29 - DEBUG - 41535672 - hook_newsletter> Emails found in sending status: 1 10-08-2013 17:32:29 - DEBUG - 41536008 - hook_newsletter> Sending email 4 10-08-2013 17:32:29 - DEBUG - 42159568 - limits_exceeded> Setting the limits for the first time 10-08-2013 17:32:29 - DEBUG - 42159616 - limits_exceeded> Max number of emails can send: 56
Every time, not just the first time. Can I forward you the full log to have a look at? It contains peoples e-mail addresses so obviously I don’t want to post it here.
August 10, 2013 at 8:10 pm #9012Stefano
KeymasterYes send it toyemail but in few hours i’ll go away fory holidays so I’ll do my best to look at it.
PAugust 10, 2013 at 9:48 pm #9013BuckoA51
ParticipantOk I have sent, thanks for all your help and have a great holiday.
September 10, 2013 at 11:28 am #9168BuckoA51
ParticipantSo it is that time of month again when I send the newsletter. I have started a delivery, checked the error logs and there’s nothing in there. However, it seems delivery is going much quicker this time, so maybe something changed in the latest newsletter update or somewhere that fixed the problem? I will keep an eye on it and let you know. Thanks for all your help.
September 10, 2013 at 3:27 pm #9169Stefano
KeymasterHi, I can confirm nothing has been changed about the delivery engine on latest releases. Probably the cron system if now working correctly, maybe you installed a cron call?
September 11, 2013 at 10:32 am #9174BuckoA51
ParticipantNope cron has always been working, if you remember I turned off the delete part to see if it definitely worked and got a home directory full of wp-cron files. maybe something in the WordPress update caused it to work better?
-
AuthorPosts
- You must be logged in to reply to this topic.