Support Invision Power Board Cronjob (1 Betrachter)

  • Ersteller des Themas
  • #1

4NN1H1L4710N

Registriert
Black-Market: 0 / 0 / 0
24 März 2012
2
2 %
hallo leute,
bitte erschlagt mich nicht sofort wegen meiner copy+paste frage.

Ich bekomme im adminCP diese warnung...
When this setting is enabled you MUST ensure that the cron is set up properly. If this setting is turned on but no cron is set up it will cause significant damage to your site.

You should set the cron to run the following command every minute:
/usr/bin/php -d memory_limit=-1 -d max_execution_time=0 /www/htdocs/xxxxx/xxxxx/applications/core/interface/task/task.php xxxxxxxxxxxxxxxxxxxxxxxxxxxx
jetzt habe ich bei meinem webhoster den cronjob erstellt, allerdings konnte ich keinen direkten befehl eingeben sondern nur einen pfad eingeben.
14097


deshalb habe ich dann die task.php datei geöffnet um zu gucken ob ich den befehl einfügen kann...
PHP:
<?php
/**
* @brief        Runs tasks
* @author        <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright    (c) Invision Power Services, Inc.
* @license        https://www.invisioncommunity.com/legal/standards/
* @package        Invision Community
* @since        24 Jun 2013
*/

// To execute a specific task pass the ID (core_tasks.id - NB: This is different to the task key)
// as the second parameter to the command
// e.g: /usr/bin/php /path/to/site/applications/core/interface/task/task.php abc1234 6
// would execute task with ID 6


/* Check this is running at the command line */
if ( !isset( $_SERVER['argv'] ) )
{
    echo "Not at command line\n";
    exit;
}

/* Init Invision Community */
\define('READ_WRITE_SEPARATION', FALSE);
\define('REPORT_EXCEPTIONS', TRUE);
require_once str_replace( 'applications/core/interface/task/task.php', 'init.php', str_replace( '\\', '/', __FILE__ ) );

if ( !\IPS\CIC and $_SERVER['argv'][1] !== \IPS\Settings::i()->task_cron_key )
{
    echo "Incorrect key\n";
    exit;
}

/* Execute */
try
{
    /* Ensure applications set up correctly before task is executed. Pages, for example, needs to set up spl autoloaders first */
    \IPS\Application::applications();
   
    if( isset( $_SERVER['argv'][2] ) )
    {
        $task = \IPS\Task::load( $_SERVER['argv'][2], ( \is_numeric( $_SERVER['argv'][2] ) ) ? NULL : 'key' );

        if ( !$task )
        {
            throw new \OutOfRangeException( 'NO_TASK' );
        }
       
        $task->runAndLog();
    }
    else
    {
        while( $task = \IPS\Task::queued() )
        {
            $task->runAndLog();
        }
    }
}
catch ( \Exception $e )
{
    \IPS\Log::log( $e, 'uncaught_exception' );
   
    echo "Exception:\n";
    print_r( $e );
    exit;
}

/* Exit */
exit;
ich habe mir gedachte das ich den befehl wohl irgendwo beim "execute" einfügen soll, jetzt weiss ich allerdings nicht genau wo. ich würde mal raten direkt unter "\IPS\Application::applications();" und dann mit einem semicolon abschließen ist das richtig so?
 
Zuletzt bearbeitet:

Krüger

Forum-Mitglied
Black-Market: 0 / 0 / 0
18 März 2019
81
13 %
Du solltest besser nicht in den Dateien rumspielen. Wenn das bei KAS oder was das ist nicht geht, lass die Aufgaben einfach über den Traffic laufen.
 

Dieses Thema betrachten gerade (Benutzer: 0, Gäste: 1)