1、E:\html\tproject\framebota\platform\bootstrap.php

Kohana::modules(array(
'auth' => MODPATH.'auth', // Basic authentication
'cache' => MODPATH.'cache', // Caching with multiple backends
'codebench' => MODPATH.'codebench', // Benchmarking tool
'database' => MODPATH.'database', // Database access
'image' => MODPATH.'image', // Image manipulation
'minion' => MODPATH.'minion', // CLI Tasks
'orm' => MODPATH.'orm', // Object Relationship Mapping
'unittest' => MODPATH.'unittest', // Unit testing
'userguide' => MODPATH.'userguide', // User guide and API documentation 'captcha' => MODPATH.'captcha', // captcha
'export' => MODPATH.'export', // export pdf excel etc
'common' => MODPATH.'common', // mixture common unit //bota all service: it is lazy load
'bapi' => SVCPATH.'bapi', // bota userguide
'member' => SVCPATH.'member', // member center
'corper' => SVCPATH.'corper', // corper center
'order' => SVCPATH.'order', // order center 'line' => SVCPATH.'line', // travel line
'hotel' => SVCPATH.'hotel', // ours and ota hotel
'car' => SVCPATH.'car', // use car service
'visa' => SVCPATH.'visa', // visa
'piao' => SVCPATH.'piao', // on day ticket
'tuan' => SVCPATH.'tuan', // sell
'flight' => SVCPATH.'flight', // flight to supplier
'train' => SVCPATH.'train2', // train to supplier
));

  

2、E:\html\tproject\framebota\platform\classes\Task\Flight\Airport.php

<?php defined('SYSPATH') or die('No direct script access.');

/**
* 更新机场名称信息
* 数据来源携程 http://sec-m.ctrip.com/restapi/soa2/13076/getpoicontent
* Class Task_Flight_Airport
*/
class Task_Flight_Airport extends Minion_Task
{
     protected $_options = array(
          'foo' => 'bar',
          'bar' => NULL,
      );
    /**
* @param array $params
*/
protected function _execute(array $params)
{
     Kohana::$log->add(Log::DEBUG, __FILE__."\t".__LINE__."\t\t\t" . var_export($params, true));
$url = 'http://sec-m.ctrip.com/restapi/soa2/13076/getpoicontent';
$rows = ORM::factory('Flight_Airport')
->where('countycode', '=', 'CN')
->where_open()
->or_where('modtime', '<', DB::expr('DATE_SUB(NOW(),INTERVAL 2 DAY)'))
->or_where('modtime', '=', NULL)
->where_close()
->limit(20)
->order_by('modtime', 'ASC')
->order_by('hot', 'ASC')
->find_all();
$curl = CURL::factory($url);
foreach ($rows as $row) {
$code = $row->code;
$result = $curl
->data(array('key' => $code))
->method('post')
->execute();
$result = json_decode($result);
$result = json_decode($result->content);
$result = $result->Data;
$names = array();
$result = array_filter($result, function ($v) use ($code) {
return isset($v->Country) and $v->Country == '中国' and
isset($v->CountryCode) and $v->CountryCode == 'CN' and
isset($v->Code) and $v->Code == $code;
});
foreach ($result as $k => $v) {
if (strstr($v->Name, '机场')) {
$names[$k] = 0;
} else {
$names[$k] = 1;
}
};
array_multisort($names, SORT_NUMERIC, SORT_ASC, $result);
if ($result) {
$result = current($result);
if (isset($result->Datas) and count($result->Datas) and !strstr($result->Name, '机场')) {
$result->Datas = array_filter($result->Datas, function ($v) use ($code) {
return $v->Code == $code;
});
if ($result->Datas) {
$result = (object)array_merge((array)$result, (array)current(Arr::path((array)$result, 'Datas')));
}
}
$row->set('name', strtoupper($result->EName))
->set('_name', $result->Name)
->set('_shortname', UTF8::strlen($result->Name) > 4 ? str_replace('国际', '', $result->Name) : $result->Name);
}
$row->set('modtime', DB::expr('NOW()'))
->save();
}
if ($rows->count() == 0) {
echo '没有变更';
} else {
echo '完成';
}
}
}

3、执行:

# php index.php --task=user:userList --foo=foobar --bar=liuchao

# php index.php --task=User_UserList --foo=foobar --bar=liuchao

Kohana Minion cli 学习的更多相关文章

  1. C++/CLI学习入门

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxIAAAFlCAYAAAB/fN6bAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw

  2. Commons CLI 学习(1)

    The Apache Commons CLI library provides an API for parsing command line options passed to programs. ...

  3. vue 自学笔记记录

    vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...

  4. 通过python-libvirt管理KVM虚拟机 代码实现

    初步代码 <span style="font-size:18px;">''''' Work with virtual machines managed by libvi ...

  5. 自动化运维与Saltstack

    一.自动化运维介绍 1.自动化运维产生背景   传统的IT运维是将数据中心中的网络设备.服务器.数据库.中间件.存储.虚拟化.硬件等资源进行统一监控,当资源出现告警时,运维人员通过工具或者基于经验进行 ...

  6. saltstack操作

    使用分组 修改minon的ID,做一个标识 [root@node2 ~]# vim /etc/salt/minionmaster: 172.25.254.130 id: web1 #node2[roo ...

  7. HTML5打造原生应用——Ionic框架简介与Ionic Hello World

    试了试用Ionic框架打造了两个应用,然后在Google Play上架了. 程序语言答人 教你设计物联网 更有意思的是这是在一周的业余时间内完成的三个应用中的两个,接着让我们看看这个框架如何实现高效地 ...

  8. jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)

    一.确认CLI所使用的端口 以domain模式为例,查看domain controller(也就是master主机)上的host.xml <management-interfaces> & ...

  9. VC++ 学习笔记(三):摩登之路——C++/CLI简介

    在Windows上,除非我们必须得用C++来写界面,否则我会选择避免,避免学习和使用MFC.替代的方案是用C#来做界面,然后用C++/CLI来连接C#和Native C++.那么问题来了,C++/CL ...

随机推荐

  1. .net core 学习小结之 JWT 认证授权

    新增配置文件 { "Logging": { "IncludeScopes": false, "Debug": { "LogLeve ...

  2. django groupby 用法

  3. express中app.use()使用方法

    app.use([path,] function [, function…]) 在path上安装中间件,如果path没有被设定,那么默认为”/”. 当为路由设置一个匹配路径后,路由会匹配该路径及该路径 ...

  4. C语言第九周编程作业

        这个作业属于哪个课程 C语言程序设计 这个作业的要求在哪里 https://pintia.cn/problem-sets/1120145772099268608 我在这个课程的目标是 了解结构 ...

  5. Linux /dev/shm

    /dev/shm是Linux下的一个目录,/dev/shm目录不在磁盘上,而是在内存中,因此使用Linux /dev/shm的效率非常高,直接写进内存 可以通过两个脚本验证Linux /dev/shm ...

  6. select count(*) 底层到底干了啥?

    作者:贾春生,http://dwz.win/myg SELECT COUNT( * ) FROM TABLE 是个再常见不过的 SQL 需求了. 在 MySQL 的使用规范中,我们一般使用事务引擎 I ...

  7. Android 在同一个手机上安装多个相同的apk,便于调试

    Android studio 在同一个手机上安装多个相同的apk 原文地址:http://yj.itrydo.com/posts/iKJryXL9zkfSGRTZk 先看效果: 1.在我使用ecsli ...

  8. Zabbix--05 Grafana、percona、自动发现和自动注册

    目录 一. Grafana自定义图形 1.安装grafana 2.安装并激活zabbix插件 3.数据展示 4.自定义图形仪表盘 5.自定义图形饼图 二. percona模版监控mysql 1.安装p ...

  9. 2019 计蒜之道 复赛 B. 个性化评测系统 (模拟,实现,暴搜)

    24.02% 1000ms 262144K "因材施教"的教育方式自古有之,互联网时代,要实现真正意义上的个性化教育,离不开大数据技术的扶持.VIPKID 英语 2020 多万学员 ...

  10. Intelli IDEA快捷键(配合IdeaVim)(转)

    Intelli IDEA快捷键(配合IdeaVim)(转) Intelli IDEA开发环境,个人总结的一些常用的快捷键. 想要使用vim方式编辑代码,可以使用Intelli IDEA的IdeaVim ...