国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

php定時(shí)執(zhí)行任務(wù)(定時(shí)刪除用戶(hù)過(guò)期積分)

endiat / 1369人閱讀

摘要:最近網(wǎng)站實(shí)行用戶(hù)積分過(guò)期制度,只保留用戶(hù)近三月積分,三月前未使用積分進(jìn)行扣除平臺(tái)用戶(hù)量比較大,感覺(jué)這樣做會(huì)出問(wèn)題,有沒(méi)有好的解決方法服務(wù)器代碼如下近三月使用積分扣除用戶(hù)過(guò)期積分添加過(guò)期積分扣除日志總過(guò)期積分過(guò)期積分未消費(fèi)完應(yīng)扣

最近網(wǎng)站實(shí)行用戶(hù)積分過(guò)期制度,只保留用戶(hù)近三月積分,三月前未使用積分進(jìn)行扣除
*平臺(tái)用戶(hù)量比較大,感覺(jué)這樣做會(huì)出問(wèn)題,有沒(méi)有好的解決方法?(windows iis服務(wù)器)
代碼如下:

ignore_user_abort(); 
set_time_limit(0); 
do{
    $this->del_score();
    sleep(24*3600);
}while (true);

private function del_score()
{
    $date = to_date(to_timespan(to_date(TIME_UTC)." -3 month"),"Y-m-d");
    
    // 近三月使用積分
    $user_scores = $GLOBALS["db"]->getAll("SELECT user_id,sum(score) as score FROM ".DB_PREFIX."user_score_log WHERE score<0 AND create_time_ymd > "".$date."" GROUP BY user_id");
    
    // 扣除用戶(hù)過(guò)期積分
    $update_sql = "UPDATE ".DB_PREFIX."user SET score = score - CASE id ";

    // 添加過(guò)期積分扣除日志
    $insert_sql = "INSERT INTO ".DB_PREFIX."user (`user_id`, `score`, `account_score`, `mome`, `type`, `create_time`, `create_time_ymd`, `create_time_ym`, `create_time_y`) VALUES ";

    foreach ($user_scores as $k => $v) {
        // 總過(guò)期積分
        $old_account_score = $GLOBALS["db"]->getOne("SELECT account_score FROM ".DB_PREFIX."user_score_log WHERE user_id=".$v["user_id"]." AND create_time_ymd<=".$date." ORDER BY id DESC LIMIT 1");
        if($old_account_score > abs($v["score"])) // 過(guò)期積分未消費(fèi)完
        {
            $arr[$v["user_id"]] = $v["score"];

            // 應(yīng)扣除積分
            $score = intval($account_score - abs($v["score"]));
            $update_sql .= sprintf("WHEN %d THEN %d ", $v["user_id"], $score);

            // 賬戶(hù)現(xiàn)有積分
            $account_score = $GLOBALS["db"]->getOne("SELECT score - {$score} FROM ".DB_PREFIX."user WHERE id=".$v["user_id"]);
            $create_time = TIME_UTC;
            $create_time_ymd = to_date(TIME_UTC,"Y-m-d");
            $create_time_ym = to_date(TIME_UTC,"Ym");
            $create_time_y = to_date(TIME_UTC,"Y");
            $insert_sql .= "(".$v["user_id"].",-".$score.",".$account_score.","積分到期未使用部分扣除",26,".$create_time.","".$create_time_ymd."","".$create_time_ym."","".$create_time_y.""),";
        }
        continue; 
    }
    $ids = implode(",", array_keys($arr)); 
    $update_sql .= " END WHERE id IN ($ids)";
    $insert_sql = substr($insert_sql, 0, -1);
    $GLOBALS["db"]->query($update_sql);
    $GLOBALS["db"]->query($insert_sql);
} 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22116.html

相關(guān)文章

  • 定時(shí)器在大型web項(xiàng)目中的應(yīng)用和實(shí)現(xiàn)

    摘要:在軟件項(xiàng)目中,定時(shí)器也被應(yīng)用到了各方各面,本文將從項(xiàng)目入手,講述定時(shí)器,本文的例子都以為例。定時(shí)器總類(lèi)定時(shí)器有兩種對(duì)應(yīng)重復(fù)任務(wù)和一次性任務(wù)。 在大規(guī)模分布式系統(tǒng)中,每個(gè)業(yè)務(wù)都可能是集群,每個(gè)業(yè)務(wù)機(jī)都會(huì)產(chǎn)生定時(shí)任務(wù),不同的業(yè)務(wù)會(huì)有不同的任務(wù)管理需求,統(tǒng)一的任務(wù)調(diào)度和管理變得非常有必要。 定時(shí)如何準(zhǔn)確,大量的定時(shí)被同時(shí)觸發(fā)怎么辦? 定時(shí)結(jié)束的時(shí)候,怎么通知業(yè)務(wù)機(jī)去處理呢? 某臺(tái)業(yè)務(wù)機(jī)下線...

    douzifly 評(píng)論0 收藏0
  • 定時(shí)器在大型web項(xiàng)目中的應(yīng)用和實(shí)現(xiàn)

    摘要:在軟件項(xiàng)目中,定時(shí)器也被應(yīng)用到了各方各面,本文將從項(xiàng)目入手,講述定時(shí)器,本文的例子都以為例。定時(shí)器總類(lèi)定時(shí)器有兩種對(duì)應(yīng)重復(fù)任務(wù)和一次性任務(wù)。 在大規(guī)模分布式系統(tǒng)中,每個(gè)業(yè)務(wù)都可能是集群,每個(gè)業(yè)務(wù)機(jī)都會(huì)產(chǎn)生定時(shí)任務(wù),不同的業(yè)務(wù)會(huì)有不同的任務(wù)管理需求,統(tǒng)一的任務(wù)調(diào)度和管理變得非常有必要。 定時(shí)如何準(zhǔn)確,大量的定時(shí)被同時(shí)觸發(fā)怎么辦? 定時(shí)結(jié)束的時(shí)候,怎么通知業(yè)務(wù)機(jī)去處理呢? 某臺(tái)業(yè)務(wù)機(jī)下線...

    whataa 評(píng)論0 收藏0
  • laravel 任務(wù)調(diào)度實(shí)例

    摘要:導(dǎo)語(yǔ)之前寫(xiě)過(guò)使用的進(jìn)行定時(shí)任務(wù),實(shí)際上也可以執(zhí)行定時(shí)任務(wù)。需求是統(tǒng)計(jì)每日訪問(wèn)的數(shù),雖然數(shù)據(jù)表中有數(shù)據(jù),為了演示,新建監(jiān)聽(tīng)器統(tǒng)計(jì)。記錄這篇文章中介紹了實(shí)現(xiàn)了事件監(jiān)聽(tīng)器,在此基礎(chǔ)上進(jìn)行擴(kuò)展。 導(dǎo)語(yǔ) 之前寫(xiě)過(guò)使用 Linux 的進(jìn)行定時(shí)任務(wù),實(shí)際上 laravel 也可以執(zhí)行定時(shí)任務(wù)。需求是統(tǒng)計(jì)每日訪問(wèn)的 IP 數(shù),雖然數(shù)據(jù)表中有數(shù)據(jù),為了演示,新建監(jiān)聽(tīng)器統(tǒng)計(jì)。 記錄 IP 這篇文章中介紹了...

    loonggg 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<