Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
crautcher
2018 / 1990 / 463
Регистрация: 27.05.2011
Сообщений: 6,835
#1

переработать алгоритм рассылки - PHP

26.10.2011, 11:50. Просмотров 398. Ответов 0
Метки нет (Все метки)

рассылку запускает шел:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/sh
cd /var/www/absolux/cron ;
date=`date +"%Y-%m-%d"`;
date="date $date"; 
sqldate=`echo "select date from CronFbPost;" | mysql -h **.***.148.17 -u reeder -p***********# -D HORABSOLUX;`;
# если дата посленей рассылки не сегодня тогда запускаем
if [ "$sqldate" != "$date" ]
  then
    count=`echo "select count(*) from FacebookJointing where mailingList = '1' ;" | mysql -h **.***.148.17 -u reeder -p***********# -D HORABSOLUX;`;
    count=`echo $count | egrep -o "[0-9]+"`; 
    n=0;
   while [ "$n" != "$count" ]    
     do
    n=`expr $n + 1`;
    php cron.facebook_post.php&
# запускаем сценарий в фоновом режиме столько раз , сколько людей в базе
      done
 fi
cron.facebook_post.php :
PHP
1
2
3
4
5
6
7
8
9
function GetStep() #определяет кому шлем
{
 $sql = Sql::getInstance  ('horo');
 $step = $sql->query ("select * from CronFbPost ",$a);
 $step = $step -> fetch_assoc ();
 if ( $step['date'] == date('Y-m-d') )
    return false;
 return $step ['step'];
}
в табличке CronFbPost 1 запись , дата последней рассылки ,
и ид последнего юзера кому слали ((шаг) 0 если всем отослали)
тут еще набор функций , не имеющих отношения к проблеме
и далее :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$cID = GetStep(); //получили юзера
  if ($cID !== false)
  { 
      $conf = include dirname(__FILE__) . '/../conf/conf.facebook.php';
      $sql = Sql::getInstance  ('horo');    
 
      if ( $cID == 0 ) 
          //если 0 значит 1ый юзер кому шел , иначе продолжаем слать
        $LoginInfo = $sql -> getListFromQuery  ("SELECT * FROM FacebookJointing where mailingList= 1 order by fbID limit 1");
      else
        $LoginInfo = $sql -> getListFromQuery  ("SELECT * FROM FacebookJointing where mailingList= 1 and fbID > '" .  addslashes($cID) ."' order by fbID limit 1");
      
       if (sizeof($LoginInfo) == 1) //если есть еще кому слать
        {
          $sql -> run ("update CronFbPost set step = '". addslashes($LoginInfo[0]['fbID'] ) ."' ");
                // заносим последнего юзера в табличку - на каком мы шаге ,  далеее не важно сама рассылка 
          $LoginInfo = $LoginInfo [0] ;
          $ui = $sql->query ("SELECT * FROM HoroUserInfo WHERE LoginID = '". addslashes($LoginInfo['LoginID']) ."' ",$a); 
          $ui = $ui -> fetch_assoc ();
          $lg = GetLg($LoginInfo['LoginID']);
          if (empty($lg) || !$lg)
              $lg='lt';     
          $pForecast=getToDay($ui ,$lg);
    PublishToWall ( $CurentUser['access_token'] , $pForecast['Title'] , $conf['a7v']['appUrl'] , GetZodiacPicture($ui) , GetLinkName($lg) , $pForecast['Body'] ,$CurentUser['fbID']  , $lg);
        
        } 
        else
                $sql -> run ("update CronFbPost set date = '". date('Y-m-d') ."' , step = '0' "); 
                    //обновляем дату последней рассылки на сегодня , если юзеров больше нет
  }
проблема в том что сценарий не успевает обновить юзера в табличке шагов , и следующий сценарий опять ему шлет . Как лучше утранить проблему ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 11:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос переработать алгоритм рассылки (PHP):

СМС-рассылки
Хочу на сайте сделать регистрацию по номеру телефона. На телефон будет...

Ошибка в скрипте рассылки
После рассылки, хостер ругается, мол мой скрипт барахлит и у них создается...

Написание списка рассылки
Народ ,помогите написать список рассылки или скажите как это делается

Организация email рассылки
Всем доброго ) Я вот задался вопросом рассылки email, как-то с "одиночными"...

Настройка кода скрипта рассылки
У меня работает скрипт, но прошу настройть тайменг в минуту в скрипте php, ибо...

Скрипт новостной рассылки по e-mail
Хочу написать свой скрипт для рассылки новостей по мылу для подписчиков....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 11:50
Привет! Вот еще темы с решениями:

Функия рассылки в скрипте - как организовать
Здравствуйте. Если кратко, дано два варианта php приложения/скрипта решающие...

PHP. Сервис для рассылки СМС
Добрый вечер. Подскажите недорогие, на первое время сайты, или названия...

Email рассылки свой скрипт или MailChimp?
Предложили заняться большим проектом. Для социальной сети нужно реализовать...

Расширенная статистика обращений к файлам и отписка от рассылки писем
Нужен программист, который реально разбирается, вообщем, профессионал, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru