nodejs: как получить промежуточные значения хеша

В некоторых случаях есть небольшой сложный способ обработки «Неустранимая ошибка: максимальное время выполнения 30 секунд» в качестве исключения:

function time_sublimit($k = 0.8) {
    $limit = ini_get('max_execution_time'); // changes even when you set_time_limit()
    $sub_limit = round($limit * $k);
    if($sub_limit === 0) {
        $sub_limit = INF;
    }
    return $sub_limit;
}

В коде вы должны измерить время выполнения и бросить исключение может быть вызвано фатальной ошибкой таймаута. $ k = 0.8 - это 80% от допустимого времени выполнения, поэтому у вас есть 20% времени для обработки исключения.

try{
    $t1 = time(); // start to mesure time.
    while (true) { // put your long-time loop condition here
        time_spent = time() - $t1;
        if(time_spent >= time_sublimit()) {
            throw new Exception('Time sublimit reached');
        }
        // do work here
    }
} catch(Exception $e) {
    // catch exception here
}
1
задан Joerg Veigel 18 January 2019 в 09:56
поделиться

1 ответ

Я думал слишком сложно: в моем случае (для выражения содержимого файла) алгоритм «SHA» -Secure Hash - фактически НЕ требуется, простая хеш-функция может сделать эту работу. Таким образом, будет использоваться CRC32, что позволяет последовательно добавлять байты.

0
ответ дан Joerg Veigel 18 January 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: