Skip to content

How to start newsletter deliver faster

edited 5:58AM in Questions

Hello Sendy support,

We need to send breaking news about sport events and we want these to be sent immediately.

We are thinking about two possible solutions:

1) Setting the cron to run every minute

2) Trigger the sending by sending an HTTP request to https://our-sendy-address.com/scheduled.php

I found the old thread where you do not recommend to go with the 1-minute cron jobs: https://sendy.co/forum/discussion/15894/cron-for-sending-emails-set-to-every-minute

I was curious to see if you are not locking the cron jobs properly and if that could cause some race conditions and duplicate email deliveries. But it seems to work fine.

When we send newsletter to 4000 email addresses it takes about 10 minutes and it's all done in a single cron job run. The later cron job which is triggered in that 10 minute sending duration just does not start sending the same campaign again and just does nothing.

So I'm under impression that we do not have to worry about running the sending cron every minute and your code does avoid duplicate cron runs, so that would be the first solution (1).

But we would still like to trigger the sending manually to send the emails instantly. Our triggering would check the 5 minute cycle of the standard cron (0, 5, 10, 15,... 55 minutes each hour) and it if would be too close to it (say 1 minute) it would not do it, to avoid the race conditions. That would be the second solution (2).

Could you please let us know if we missed anything and which approach do you use to speed up the email sending?

Thanks,
Martin

Comments

  • Hi Martin,

    Sendy includes an internal locking mechanism for the sending process. If a campaign is already in progress, any subsequent cron invocation will safely exit and will not resend or create duplicate deliveries. This is why cron jobs triggered during an active send appear to “do nothing.”

    Regarding the approaches you mentioned:

    1) Running the sending cron every minute
    While this is technically safe from a duplication standpoint due to Sendy’s locking, it is not recommended. Running the cron this frequently can introduce unnecessary server load and increases the likelihood of overlapping processes on slower or heavily loaded servers. In most cases, it provides little benefit compared to a slightly longer interval.

    2) Triggering scheduled.php via HTTP
    This is the recommended approach when immediate delivery is required (e.g. breaking news). Manually triggering scheduled.php functions the same way as a cron run, and all internal safeguards remain in place to prevent race conditions or duplicate sends.

    Avoiding manual triggers close to your regular cron schedule is sensible, although even if both were triggered, Sendy’s locking mechanism would still ensure only one sending process runs at a time.

    How Sendy typically improves sending speed

    • Increase your Amazon SES sending limits where possible
    • Ensure cron jobs are reliable and not delayed
    • Trigger sending immediately when time-sensitive campaigns are created
    • Optimize server performance so each run can process emails as efficiently as SES allows

    In summary, manually triggering scheduled.php when needed is the preferred solution for time-sensitive campaigns, and you do not need to worry about duplicate sends when using Sendy’s built-in sending system.

    Hope this clarifies things.

    Best regards,
    Ben

This discussion has been closed.