Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем привет!
Ребята выручайте, если использовать код ниже для отправки почты, локально все работает.
Mail::later($timeSend, 'emails.queued_email', ['text' => $text], function ($message) use ($user, $title, $senderName, $pathToFile) {
$message->from('admin@example.com', $senderName);
$message->to($user->email)->subject($title);
$message->attach($pathToFile);
});
По коду можно понять что перед отправкой в ложем таблицу очереди Laravel jobs. Локально все работает. В payload table jobs путь до вложенного файла есть. Но на сервере он обрывается и пустой с некоторыми лишними тегами, перепробовал все известные мине способы.
Может кто то сталкивался?
Локально: "pathToFile\";s:53:\"\/var\/www\/mysite.com\/public\/149379992_images.jpg\";}s:7:\"binding\";N;s:5:\"scope\";s:43:\"App\\Http\\Controllers\\MyController\";s:8:\"isStatic\";b:0;}}"}}
на сервере:
"pathToFile\";s:96:\"\/var\/www\/mysite.com\/public\/>\n <meta http-equiv=\"refresh\" content=\"1;url=http:\";}s:7:\"binding\";N;s:5:\"scope\";s:43:\"App\\Http\\Controllers\\MyController\";s:8:\"isStatic\";b:0;}}"}}
Вообщем понял одно
Если писать просто $schedule->command('backup:run');
то пашет, а если
$schedule->command('backup:run')->dailyAt('11:00');
или
$schedule->command('backup:run')->daily()->at('11:00');
то не работает.
Кто знает почему такое возможно?
может что в app/Console/Kernel.php не правильно? :
protected function schedule(Schedule $schedule)
{
$schedule->command('backup:run')->daily()->at('09:45');
}
но в ручную команда запускается php artisan backup:run работает
tail -f /var/log/syslog показывает:
Jul 27 09:45:31 localhost kernel: [3077297.612921] INPUT DROP: IN=eth0 OUT= MAC=40:f2:e9:94:8b:ca:2c:6b:f5:74:c2:01:08:00 SRC=112.173.171.90 DST=89.218.73.194 LEN=60 TOS=0x04 PREC=0x00 TTL=48 ID=33502 DF PROTO=TCP SPT=52634 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0
Jul 27 09:46:01 localhost /USR/SBIN/CRON[28882]: (sawa) CMD (root /usr/bin/php /var/www/site.name/artisan schedule:run 1>> /dev/null 2>&1)
Но ничего не выполняется.
Что означает localhost kernel: [3077297.612921] INPUT DROP ?, он все время повторяется
У меня сейчас в /var/spool/cron/crontabs/ лежит файл какой то ivan с правами -rx--------
внутри написано:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.vKjbhh/crontab installed on Fri Aug 8 16:57:52 2014)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
0 0 * * * wget -O - -q -t 1 http://www.site.name/cron.php?cron_key= … 2fG_k_R8-Y
0 1 * * * wget -O - -q -t 1 http://sandbox.site.name/cron.php?cron_ … Mcok-dSn0s
мне сюда прописывать свою задачу или создать свой файл?
Всем доброго дня!
Кто нибудь знает как правильно прописать в планировщике пути?
Я делаю так:
* * * * * root /usr/bin/php /var/www/stse.ncste.kz/artisan schedule:run » /dev/null 2>&1
* * * * * root /usr/bin/php /var/www/stse.ncste.kz schedule:run » /dev/null 2>&1
* * * * * root php /var/www/stse.ncste.kz/artisan schedule:run » /dev/null 2>&1
* * * * * root php /var/www/stse.ncste.kz schedule:run » /dev/null 2>&1
в файле etc/crontab Linux Debian 7.8
И не один из вариантов не работает
Можно доверить обработку записи из очереди менеджеру очереди.?
Не совсем понял документацию, можете объяснить:
1. Сперва создаем миграцию/таблицу
php artisan queue:table
php artisan migrate
2. создаем php artisan make:job SendReminderEmail --queued класс задач
3. добавляем задачу в очередь $this->dispatch(new SendReminderEmail($user));
4. Запуск слушателя очереди php artisan queue:listen который каким то образом сам все выполняет
Вопрос:
1. логика правильная?
2. У меня есть таблица (Н-м message_users) где выбраны определенные юзеры, которых надо уведомить. Как я понял в
1. Сперва создаем миграцию/таблицу
таблице очереди (jobs) который я создал, должна быть заполнена данными из message_users?
3. Если нужно очеред заполнять, это делается в Классе задач SendReminderEmail ?
4. мне нужно эту команду php artisan queue:listen повесить на крон?
Да задача стоит чтоб через крон в определенное время отправлять
Не могу все это связать. Может поможете, в документации не совсем понятно мне.
Может кто то простому смертному объяснить?
Как я понимаю - Логика такова для моей задачи, с таблице users взять несколько определенных пользователей, и добавить их в очередь для отправки почты.
Добавить в очередь это значить добавить в таблицу jobs которая создается php artisan queue:table ?
А в крон нужно считывать с таблицы jobs и отправлять почту?
Или я не так понимаю суть?
Как отправлять почту средствами Laravel 5.x, в документации есть такое. Читал, запутался полностью. Может кто знает лучше статью или уделит немного время и разъяснит что да как?
Что мне нужно:
1. Зарегистрировать очередь отправки почты (php artisan queue:table - в эту таблицу каким то образом оно пишется)
2. Создать задачу отправки почты
3. Отправить ее с помощью cron через какое то время - вопрос только как?