Giter VIP home page Giter VIP logo

Comments (7)

TimFoerster avatar TimFoerster commented on June 29, 2024 1

you could use everything, except synchronous and null, depending on your environment. But yeah, database should do it for the standard environment.

from oc-news.

TimFoerster avatar TimFoerster commented on June 29, 2024

Use an async driver. Then the mails are send over time, obv. not in parallel.
It is also not good practice to burst 900 emails.
See #103

from oc-news.

lfcc1 avatar lfcc1 commented on June 29, 2024

Ok I changed my driver to database but now all my emails are just queued and not sent.
I tried to read https://laravel.com/docs/8.x/queues but I was not able to make it work.

Im find the october cms documentation very poor. Is there any documentation so I can understand how to configure or make this new driver work?

from oc-news.

TimFoerster avatar TimFoerster commented on June 29, 2024

This driver uses the database for scheduling tasks.

The queue driver is configured here:
https://github.com/octobercms/october/blob/665de669bc0feac193628c26d6c1eae5075083de/config/queue.php#L5-L19

If you are using .env file you should change this line instead:
https://github.com/octobercms/october/blob/665de669bc0feac193628c26d6c1eae5075083de/.env.example#L28

Documented here:
https://octobercms.com/docs/services/queues#configuration

After that you need to configure the scheduler
https://octobercms.com/docs/setup/installation#crontab-setup
which calls:

oc-news/Plugin.php

Lines 218 to 222 in 3eeb97f

public function registerSchedule($schedule)
{
$memory = (int)Config::get('indikator.news::memory_limit');
$schedule->command('queue:work --daemon --queue=newsletter --memory=' . $memory)->everyMinute()->withoutOverlapping();
}

or run the queue worker with
php artisan queue:work --queue=newsletter --once
documented here:
https://octobercms.com/docs/services/queues#running-the-queue-worker

from oc-news.

lfcc1 avatar lfcc1 commented on June 29, 2024

First of all, thank you for the explanation, it was really helpful.

However, I faced a problem with the scheduler.
When I run it manually with php artisan scheduler:run and then close it with CTRL + C, if I try to start it again it will return No scheduled commands are ready to run

After a little debugging I found out it was the ->withoutOverlapping(); that was causing the problem. In order for it to work again I had to clean the php artisan cache with php artisan cache:clear.

So I'm assuming that the cronjob is never-ending, and if it ends, it will not start again until the php artisan cache is cleared.
Am I doing this right?

from oc-news.

TimFoerster avatar TimFoerster commented on June 29, 2024

If you execute crontab -e you can enter * * * * * php /path/to/your/artisan schedule:run >> /dev/null 2>&1 and it should run as expected (1 mail per minute). Nothing else is needed.

from oc-news.

nolyboms avatar nolyboms commented on June 29, 2024

So in order to make queued mail sending to work the driver needs to be set to "database" ?

from oc-news.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.