Advertisement
Guest User

Untitled

a guest
May 9th, 2012
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.22 KB | None | 0 0
  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.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement