Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: PHP  |  size: 5.22 KB  |  views: 118  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public function action_send_daily()
  2.         {
  3.                 gc_enable();
  4.                
  5.                  $x = 1;
  6.  
  7.                   while ($x <50)
  8.                   {
  9.                  echo  memory_get_peak_usage(). " start <br>";
  10.                
  11.                         $members = NULL;
  12.                         $members = DB::select('id', 'email')
  13.                                 ->from('members')
  14.                                 //original member query
  15.                                 ->where('send_update','=','Y')
  16.                                 ->where('email_confirmed', '=', 'Y')
  17.                                 ->where('send_update_frequency','=','daily')
  18.                                 //->where('members.emailed_am', '=', 'N')
  19.                                 ->and_where_open()
  20.                                         ->where('send_update_time','=','am')
  21.                                         ->or_where('send_update_time', '=', 'am_pm')
  22.                                 ->and_where_close()
  23.                                 ->and_where_open()
  24.                                         ->where('member_type_id', '=', '1') //subscribed
  25.                                         ->or_where('member_type_id', '=', '4') //trial
  26.                                         ->or_where('member_type_id', '=', '5') // Prospect
  27.                                         ->or_where('member_type_id', '=', '6') // Comp
  28.                                         ->or_where('member_type_id', '=', '7') // Said No
  29.                                 ->and_where_close()
  30.                                 ->where('emailed_am','=', "N")
  31.                                 //->limit(2)
  32.                                 ->as_object()
  33.                                 ->execute()
  34.                                 ->current();
  35.  
  36.                 //echo  memory_get_peak_usage(). " members <br>";
  37.  
  38.                  //foreach ($members as $m)
  39.                   //    {
  40.                         $m = $members;
  41.  
  42.  
  43.  
  44.                         $emails = NULL;
  45.                         $emails = DB::select()
  46.                                         ->from('emailerscheds')
  47.                                         //end original
  48.                                  ->where('sent_day', '=', "0")
  49.                                  ->where('day', '=', 'Y')
  50.                                  ->where('member_id', '=', $m->id)
  51.                                 ->order_by('topic_id')
  52.                                 ->as_object()
  53.                                  ->execute();
  54.  
  55.                                  echo  memory_get_peak_usage(). " emails <br>";
  56.                
  57.  
  58.                                 // echo $emails->count(). " " . $m->id;
  59.                                  //exit;
  60.                                  if ($emails->count() > 0 )
  61.                                  {
  62.  
  63.                                         //echo $emails->count()." - $m->id <br>";
  64.                                         //exit;
  65.  
  66.                                         $art = 0;
  67.                                         //$member_id = 0;
  68.                                         $topic_id = 0;
  69.                                         $send = "";
  70.                                         $next = "N";
  71.                                         $last_member_id = 0;
  72.                                         $first = "Y";
  73.                                         $tpic_id = 0;
  74.                                         $subject = "";
  75.                                         $last_email = "";
  76.                                         $article_push = array();
  77.  
  78.  
  79.                                         $send_html = NULL;
  80.                                         $send_text = NULL;
  81.                                         $send = NULL;
  82.                                         $send_txt = NULL;
  83.                                         foreach ($emails as $e)
  84.                                         {
  85.  
  86.                                                  echo  memory_get_peak_usage(). " emails ID $e->id <br>";
  87.                                                  if (! in_array($e->article_id, $article_push))
  88.                                                  {
  89.                                
  90.                                        
  91.                                                          if ($topic_id != $e->topic_id)
  92.                                                         {
  93.                                                                 $send .= '<h2>'. $e->topic_name. '</h2>';
  94.                                                                 $send_txt = "\n". $e->topic_name. "\n \n";
  95.                                                                 $topic_id = $e->topic_id;
  96.                                                         }
  97.                                                        
  98.                                                                 $send  .='<a href="'. Kohana::$config->load('general')->get('site_url'). '/emailer/check/'. $e->member_id .'_'. $e->article_id. '">'.
  99.                                                                                 $e->title.
  100.                                                                                 '</a><br><br>';
  101.                                                                
  102.                                                                 $send_txt .= $e->title. "\n".
  103.                                                                 Kohana::$config->load('general')->get('site_url'). '/emailer/check/'. $e->member_id .'_'. $e->article_id.
  104.                                                                                
  105.                                                                                 "\n \n";
  106.  
  107.                                                                 $subject = '['. Kohana::$config->load('general')->get('site_name') . '] '. $e->title;
  108.  
  109.                                                         $art = $e->article_id;
  110.                                                         $last_id = $e->id;
  111.  
  112.                                                         $arr = array(
  113.                                                                 "sent_day" => time(),
  114.                                                         );
  115.  
  116.                                                         $sent_to_member = DB::update("emailerscheds")
  117.                                                                         ->set($arr)
  118.                                                                         ->where('id', '=', $e->id)
  119.                                                                         ->execute();
  120.  
  121.                                                         $sent_to_member = NULL;
  122.                                                         unset($sent_to_member);
  123.                                                         array_push($article_push, $e->article_id);
  124.                                                 }
  125.                                                  echo  memory_get_peak_usage(). " emails after loop ID $e->id <br>";
  126.                        
  127.                                                
  128.                                         }
  129.  
  130.  
  131.                                          echo  memory_get_peak_usage(). " emails before saving <br>";
  132.                                 //send email
  133.                                         $send_html = View::factory('emailer/daily_v2');
  134.                                         $send_text = View::factory('emailer/daily_text_v2');
  135.  
  136.                                         $send_html->send = $send;
  137.                                         $send_html->member_id = $last_member_id;
  138.                                         $send_html->last_id = $e->id;
  139.  
  140.                                         $send_text->send_text = $send_txt;
  141.                                         $send_text->member_id = $last_member_id;
  142.  
  143.                                         $member_email = $m->email;
  144.  
  145.                                         $save_email = NULL;
  146.                                         // $save_email  = $this->emailer_sendgrid($member_email, $subject, $send_html, $send_text);
  147.                                        
  148.                                         $save_email =NULL;
  149.  
  150.                                          $set = array('name', 'from_email', 'email', 'subject', 'body', 'body_text', 'member_id');
  151.                                        
  152.                                          $massemail = NULL;
  153.                                                        
  154.                                          $massemail = array( "", "arnold.gamboa@gmail.com",$member_email,$subject,$send_html, $send_text, $last_member_id);
  155.  
  156.                                           $emailsent = DB::insert('massemails', $set)->values($massemail)->execute();
  157.  
  158.                                        
  159.                                         $send_html= NULL;;
  160.                                         $send_text = NULL;
  161.                                         $send= NULL;;
  162.                                         $send_txt = NULL;
  163.                                         $emailsent = NULL;
  164.                                         $massemail = NULL;
  165.                                          echo  memory_get_peak_usage(). " after saving <br>";
  166.                
  167.  
  168.                                         //echo $member_email. ' '. $send_text;
  169.                                
  170.                                         // echo $send. "<br>----";
  171.  
  172.                                        
  173.                                        
  174.  
  175.                                         // echo  memory_get_peak_usage(). " unset email loop <br>";
  176.                
  177.  
  178.                                  }
  179.  
  180.                                
  181.                        
  182.                        
  183.                         $emailed = DB::update('members')
  184.                                                 ->set(array('emailed_am'=>"Y"))
  185.                                                 ->where('id','=', $m->id)
  186.                                                 ->execute();
  187.  
  188.                                 // echo  memory_get_peak_usage(). " update members <br>";
  189.                                 $emails = NULL;
  190.                                 unset($emails);
  191.                                 echo  memory_get_peak_usage(). " emails DESTRUCT <br>";
  192.                                
  193.                 //}
  194.                
  195.                                  
  196.  
  197.                 $emails = NULL;
  198.                  $members= NULL;
  199.                  unset($members);
  200.                  unset($emails);
  201.  
  202.                  $m = NULL;
  203.                  unset($m);
  204.                  unset($emailsent);
  205.  
  206.                  echo  memory_get_peak_usage(). " members DESTRUCT <br>";
  207.                
  208.                  gc_collect_cycles();
  209.                  //sleep(1);
  210.  
  211.                 $x++;
  212.                 }//end of endless loop 
  213.                 //echo "done";
  214.         }