You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel实现游戏矿工自动累加矿石定时任务方案咨询

在Laravel中实现定时累加用户矿石量的方案

当然可以!Laravel自带的**任务调度(Task Scheduling)**就是解决这类周期性任务的完美工具,完全能满足你服务器运行期间定时执行逻辑的需求。下面一步步来实现:

1. 创建自定义Artisan命令

首先我们需要写一个专门的命令来处理「给所有用户累加矿石」的核心逻辑:

  • 执行这条命令生成新的命令类文件:
php artisan make:command UpdateUserOre
  • 打开生成的app/Console/Commands/UpdateUserOre.php,修改命令标识和描述,然后在handle()方法里编写业务逻辑:
<?php

namespace App\Console\Commands;

use App\Models\User;
use Illuminate\Console\Command;

class UpdateUserOre extends Command
{
    // 定义命令的调用名称
    protected $signature = 'user:update-ore';
    // 命令的描述说明
    protected $description = '按每小时采集速率,更新所有用户的矿石总量';

    public function handle()
    {
        // 分块处理用户,避免大量用户数据导致内存溢出
        User::chunk(100, function ($users) {
            foreach ($users as $user) {
                // 假设User模型已关联Miner模型,rate字段为25(每小时采集量)
                $user->ore += $user->miner->rate;
                $user->save();
            }
        });

        $this->info('所有用户矿石量已成功更新!');
        return Command::SUCCESS;
    }
}

2. 注册定时任务规则

接下来要让这个命令每小时自动执行一次:

  • 打开app/Console/Kernel.php,找到schedule()方法,添加调度规则:
protected function schedule(Schedule $schedule)
{
    // 每小时执行一次矿石更新命令
    $schedule->command('user:update-ore')->hourly();
}

如果你需要更精确的执行时间(比如固定在每小时的第15分钟),可以改成:

$schedule->command('user:update-ore')->hourlyAt(15);

3. 配置服务器Cron任务

Laravel的任务调度器本身需要一个基础的Cron任务来每分钟触发检查,所以你要在服务器上做如下配置:

  • 登录服务器,执行crontab -e编辑Cron列表,添加一行命令:
* * * * * cd /你的项目根目录路径 && php artisan schedule:run >> /dev/null 2>&1

这行命令的作用是:每分钟自动切换到项目目录,运行Laravel调度器,调度器会自动判断哪些任务到了执行时间并触发。

额外优化建议

  • 如果你的用户量极大,建议在handle()方法中使用批量更新或者拆分任务到队列,避免长时间占用服务器进程;
  • 可以给任务添加日志记录,方便后续排查问题:
$schedule->command('user:update-ore')->hourly()->appendOutputTo(storage_path('logs/ore_update.log'));
  • 确保User模型和Miner模型的关联关系已经正确定义,比如在User模型中添加:
public function miner()
{
    return $this->hasOne(Miner::class);
}

这样配置完成后,服务器运行期间,每小时就会自动给所有用户的矿石总量加上对应的采集速率了,完全匹配你的需求!

内容的提问来源于stack exchange,提问作者Thomas Van Beveren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:18:48