Jump to content
  • 0

рассылка


crautcher
 Share

Question

есть кроновская рассылка на стену фейсбука юзерам . Отправка одному юзеру занимает секунду , что значит что за час я смогу отправить 3600 юзерам . А число юзеров скоро перевалит за этот лимит . Задача стоит написать демон на шеле , который будет исполнять по 10 юзеров через сценарий . тогда запустив 10 демонов мы увеличиваем скорость отправки . Как реализовать чтоб вызвав сценарий мы постили 1-10 юзерам , если еще раз то 10-20 юзерам и т.д.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

А, ну я, кажется, понял что вы хотите. Ну вот смотрите: есть у вас, допустим, 1000 юзеров, которым надо отправить что-нибудь. Пусть у вас будет написано два скрипта: index.php и sender.php — первый принимает и обрабатывает данные, а второй постит их в фейсбук. Итак, в index.php что-нибудь пришло (напрмер, сообщение и список юзеров, которым надо разослать), он записывает их в какой-нибудь файл и начинает вызывать столько копий sender.php, сколько вам надо.

Теперь сендер. Он запускается и читает файл, получая оттуда всё, что ему надо, потом проверяет, какие записи обрабатывают уже запущенные сендеры. Если ничего, то ставится метка, что он выбрал, например, от 1 до 10. Если, например, уже выбрано до 150, то он выбирает 151 — 160, отмечается об этом и начинает их рассылать.

Это был первый вариант.

Второй вариант практически такой же. Отличие лишь в том, что index уже сам «режет» данные, создаёт столько файлов, сколько нужно запустить сендеров и передаёт в сендер имя того файла, с которым нужно работать. Хранить отметки о ходе выполнения и бы предпочёл в оперативной памяти, для чего можно использовать memcached.

Link to comment
Share on other sites

  • 0

А, ну я, кажется, понял что вы хотите. Ну вот смотрите: есть у вас, допустим, 1000 юзеров, которым надо отправить что-нибудь. Пусть у вас будет написано два скрипта: index.php и sender.php — первый принимает и обрабатывает данные, а второй постит их в фейсбук. Итак, в index.php что-нибудь пришло (напрмер, сообщение и список юзеров, которым надо разослать), он записывает их в какой-нибудь файл и начинает вызывать столько копий sender.php, сколько вам надо.

Теперь сендер. Он запускается и читает файл, получая оттуда всё, что ему надо, потом проверяет, какие записи обрабатывают уже запущенные сендеры. Если ничего, то ставится метка, что он выбрал, например, от 1 до 10. Если, например, уже выбрано до 150, то он выбирает 151 — 160, отмечается об этом и начинает их рассылать.

Это был первый вариант.

Второй вариант практически такой же. Отличие лишь в том, что index уже сам «режет» данные, создаёт столько файлов, сколько нужно запустить сендеров и передаёт в сендер имя того файла, с которым нужно работать. Хранить отметки о ходе выполнения и бы предпочёл в оперативной памяти, для чего можно использовать memcached.

да именно так , спасибо

Link to comment
Share on other sites

  • 0

Да не за что. Немного подумав, я бы выбрал второй вариант — это добавит работы с ФС и, возможно, избыточность данных, но это совсем некритично, в отличие от первого варианта, где больше будет потребляться памяти оперативной. Так что лучше в index разбивайте всё по файлам и никаких уже выборок в сендерах делать не надо.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy