【问题标题】:Scheduling Windows job to run a PHP script failing调度 Windows 作业以运行 PHP 脚本失败
【发布时间】:2020-05-06 22:32:29
【问题描述】:

我有一个 PHP 脚本,可以将 SQL 表中的数据导出到 Drupal 内容中。我想将作业安排为 Windows 任务并按照以下步骤操作:

  1. 我的 PHP 文件包含以下代码:

 <?php
     namespace Drupal\Import\Commands; 
     use Drush\Commands\DrushCommands;
     use Drupal\node\Entity\Node;
    
    class ImportCommands extends DrushCommands 
    {
        public function loadData() 
    	{
            $tx = \Drupal::database()->startTransaction();
            try 
    		{
                $query_result = \Drupal::entityQuery('node')
                                    ->condition('type', 'test_mod')
                                    ->execute();
                entity_delete_multiple('node', $query_result);
    			
                $database = \Drupal::database();
                $result = $database->query("SELECT * FROM my_sql_table");
                $records = $result->fetchAll();
       
          
                foreach($records as $key => $record) {
                    $node = Node::create(['type' => 'test_mod']);
                    $node->set('title', $key);
    				$node->set('field_IDVal', $record->ID);
    				$node->set('field_name', $record->Name);
                    $node->status = 1;
                    $node->enforceIsNew();
                    $node->save();
                }
    			
            } 
    		catch (Exception $e) {
                $tx->rollBack();
                // log/report failure
            }
    
            // $tx->commit();
        }
    
    }
  1. 已创建 .bat 文件并具有以下查询:

调用 C:\MyProj\web\Commands\php.exe -f C:\MyProj\web\Commands\ExportCommands.php

  1. 创建了一个 Windows 任务来链接这个文件。

我看到的只是任务成功的 0x1。有什么帮助可以完成这项工作吗?!

预期行为:我想创建一个调用此 PHP 的 wndows 任务,并且文件中的命令将数据从 SQL 表加载到 Drupal。

现在我通过命令提示符执行文件并执行:drush MyProj:loaddata

有什么帮助吗?!

【问题讨论】:

  • 您的php.exe 文件位于C:\MyProj\web\Commands\php.exe?
  • 我将它移到我的项目文件夹中,以便与我的 PHP 文件保持一致。原来它属于Program Files
  • call 命令用于批处理文件,因此当嵌套的批处理文件完成时,它包含在简历中的那个文件会恢复。可能您在可执行文件(php.exe)上使用call 是问题所在。或者是什么掩盖了结果。 ....docs.microsoft.com/en-us/windows-server/administration/…

标签: php windows drupal scheduled-tasks


【解决方案1】:

Php.exe 放错地方了。把它移到原来的位置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2012-08-06
    • 2023-03-23
    • 2010-12-18
    • 2018-06-11
    相关资源
    最近更新 更多