Files
api/services/nginx/app/cli.php
T
Jepp9350 20442ea441 Set unlimited execution time and memory limit in CLI script
Added `set_time_limit(0)` to prevent timeout for long-running scripts and set `memory_limit` to unlimited to handle extensive memory usage. These changes ensure the script can handle resource-intensive operations without interruptions.
2025-04-09 15:18:34 +02:00

85 lines
2.9 KiB
PHP

<?php
global $EMAIL_WASH_CERTIFICATE_TOKEN;
// This script only runs when the program is called from the command line. It is used to run the CLI script.
if (php_sapi_name() !== 'cli' && !isset($_GET['internalCronCall'])) {
exit;
}
// If the program was called from the command line, get the arguments
if (php_sapi_name() === 'cli') {
$args = $argv;
} else {
// If the program was called from the browser, get the arguments from the URL
$args = [];
$args[1] = $_GET['script'];
$args[2] = $_GET['action'];
$auth = $_GET['auth_key'] ?? null;
if ($auth !== $EMAIL_WASH_CERTIFICATE_TOKEN) {
echo json_encode([
'status' => 'error',
'message' => 'Invalid token'
]);
exit;
}
}
// Set the max execution time to 0
// This is used to prevent the script from timing out
// when running for a long time
set_time_limit(0);
// Set the memory limit to unlimited
ini_set('memory_limit', '-1');
// If the first argument is 'run', switch to the second argument
if ($args[1] === 'run') {
switch ($args[2]) {
case 'minio-test':
echo "Running the minio test script";
require_once 'tests/minio/minioTest.php';
break;
case 'redis-test':
echo "Running the redis test script";
require_once 'tests/redis/redisTest.php';
break;
case 'redis-logSync-test':
echo "Running the redis log sync test script";
require_once 'tests/redis/redisLogSyncTest.php';
break;
case 'bookingModule-test':
echo "Running the bookingModule test script";
require_once 'tests/bookingModule/bookingModuleTest.php';
break;
case 'slackModule-test':
echo "Running the slack test script";
require_once 'tests/slackModule/SlackModuleTest.php';
break;
case 'bookingSync-test':
echo "Running the bookingSync test script";
require_once 'tests/bookingModule/bookingSyncTest.php';
break;
case 'bookingSync':
require_once 'cron/SyncBookings.php';
break;
case 'clearAllUsersEconomicCustomerDiscounts':
require_once 'cron/ClearAllUsersEconomicCustomerDiscounts.php';
break;
case 'clearAllUsersEconomicCustomerDetails':
require_once 'cron/ClearAllUsersEconomicCustomerDetails.php';
break;
case 'economicOrderParser-test':
echo "Running the economicOrderParser test script";
require_once 'tests/economicOrderParser/EconomicOrderParserTest.php';
break;
case 'logSync':
require_once 'cron/SyncLogs.php';
break;
case 'cron':
require_once 'cron/Cron.php';
break;
default:
echo "Invalid script name";
break;
}
} else {
echo "Invalid action";
}