【问题标题】:How to Manage a task execution time in PHP如何在 PHP 中管理任务执行时间
【发布时间】:2015-03-02 07:52:25
【问题描述】:

我有 2 个任务任务 A 和任务 B 任务 A 大约完成时间为 10 秒 和任务 B 相同意味着每个任务都有一些时间限制 如果任务在时限内完成,则可以。但如果用完时间限制,则应暂停并执行第二个任务,依此类推。

我只是想任务对象应该有以下三种方法

  1. 运行:启动任务时
  2. onPause:保存进度
  3. onResume : 当任务恢复时,它应该如何恢复。

那么我应该如何管理任务的时间?

我正在考虑每次 onPause 调用,如果时间用完,我们会计算估计时间,然后我们将开始下一个任务,但它有一些问题,所以我想知道将这个功能添加到我的项目的更好方法 提前致谢。

abstract class Task_Worker
{
protected $task;
public   $conn;
public $status;
public $action;
public $id;
public $pause_info;
public $start_time;
public $script_time;

public function __construct($task,$mysqli)
{   
    $this->start_time = microtime();
    $this->task = $task;
    $this->status = $task['task_status'];
    $this->action = $task['task_action'];
    $this->id = $task['task_id'];
    $this->run();
}
public function response($response)
{
    update("task_response='$response'","task_id=$task[id]");
}

public function onPause()
{
    $string = $this->pause_info;
    update("task_pause='$string'", "task_id=$task[id]");
}

// to be implemented for every task class
abstract protected function onResume();
abstract protected function run();

【问题讨论】:

  • 你的任务是函数吗?你能放一个sudo代码吗
  • 我们将任务创建为对象
  • raheel khan 我已经把我的任务对象抽象类
  • 请让我知道@RaheelKhan 你需要什么来解决这个问题

标签: php time multitasking


【解决方案1】:
<?php

function run()
{       
    $timeFinish = microtime(true) + 30;
    try
    {

        while(true)
        {
            checkTimeOut($timeFinish);
        }

    }
    catch(Exception $e)
    {
        echo $e-getMessage();
    }   
}


function checkTimeOut($timeFinish)
{
    if(microtime(true) > $timeFinish)
        die('Timeout');

    return true;
}

run();

【讨论】:

  • 设置时间限制将设置该运行功能或完整脚本的时间?
  • @siddhesh 看看你是否可以设法在 try 块中编写你的函数。
  • 好的,你能告诉我你将如何获得这个功能。忘记我的代码。
  • 我会通过 javascript 来做这件事,或者会得到php.net/manual/en/function.register-shutdown-function.php的帮助
  • 请你告诉我为什么我们不能在这里使用注册器关闭功能。
猜你喜欢
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多