精华内容
下载资源
问答
  • tp5.1 php计划任务crontab

    千次阅读 2018-09-20 15:55:17
    tp5.1中的php 计划任务的实现,本质上可以分为两种第一种封装在框架内部,在crontab -e中只要添加一,然后在框架内去扩展内容就好了(Laravel的schedule,任务调度),这种自由度比较高,也比较方便。第二种:创建...

    tp5.1中的php 计划任务的实现,本质上可以分为两种第一种封装在框架内部,在crontab -e中只要添加一条,然后在框架内去扩展内容就好了(Laravel的schedule,任务调度),这种自由度比较高,也比较方便。第二种:创建好PHP的执行脚本,在crontab中执行脚本,或者再写一个.sh 在crontab中执行,这种就需要在服务器上去执行一些文件,相对而言,比较麻烦,当然效果还是一样的。

    方法1.创建一个php脚本,1.php,创建一个test.sh ,赋予权限 chmod + x test.sh ,其中有个注意点 当时我去执行cd 命令的时候直接报错了,后来原因找到了,是由于你写*.sh的文件 是在windows ,然后在上传到liunx 服务器. windows 的编码格式是docs 而liunx 只能是unix. 解决办法:1. vi  test.sh 文件  2.通过  :set ff   你会发现该文件的格式fomat=docs 3. 通过 :set ff=unix  然后  :x或:wq 保存并退出。

    #!/bin/bash
    # cd /data/wwwroot/default
    /usr/bin/php /data/wwwroot/default/1.php 

    最后在crontab中,一分钟执行一次,输出到log中去,查验效果就可以了。简单自测的方法 直接在test.sh 所在目录直接./test.sh或者是sh test.sh 就可以查看脚本运行结果了

    */1 * * * * sh /data/wwwroot/default/test.sh 2 >>/data/wwwroot/default/log.txt  

    方法2.利用tp自带的think自定义command 功能,在application/模块/新建一个command文件夹/Crontab.class.php,其中的class可以省略,假如在配置的app.php中关闭了class_suffix,修改文件名为Crontab.php

    <?php
        namespace app\api\command; 
        use think\console\Command;
        use think\console\Input;
        use think\console\Output;
         
        class Crontab extends Command
        {
            protected function configure(){
                $this->setName('Crontab')->setDescription("计划任务 Crontab");
            }
         
            protected function execute(Input $input, Output $output){
                $output->writeln('Date Crontab job start...');
                /*** 这里写计划任务列表集 START ***/
         
                $this->test();
         
                /*** 这里写计划任务列表集 END ***/
                $output->writeln('Date Crontab job end...');
            }
         
            private function test(){
                echo "test\r\n";
            }
        }

    配置command.php文件,位置在application/command.php

    return ['app\api\command\Crontab'];
    

    打开命令行,运行php think Test命令test命令execute方法中运行的方法就会运行。剩下来的就是写一个Crontab.sh来执行,注意格式

    #!/bin/bash
    cd /data/wwwroot/default/purenfort-api
    /usr/bin/php think Crontab
    

    最后在crontab中,一分钟执行一次,输出到log中去,查验效果就可以了简单自测的方法直接在Crontab.sh所在目录直接 ./Crontab.sh或者是sh Crontab.sh 就可以查看脚本运行结果了 。注意php在shell脚本中要写全路径,注意.sh脚本权限、编码格式问题。其他就没啥了。

    展开全文
  • 每日备份的手工任务

    千次阅读 2008-12-22 15:30:00
    今天帮朋友设置SQL 2005自动备份,居然怎么也也设不上去,一加维护计划就报告生成计划错误,最后只好手工写了个任务了事,记录这里备忘。主要是从 msdb 中相关系统表中取得备份的最上一记录的位置,也就是这个备份...

    今天帮朋友设置SQL 2005自动备份,居然怎么也也设不上去,一加维护计划就报告生成计划错误,最后只好手工写了个任务了事,记录这里备忘。

    主要是从 msdb 中相关系统表中取得备份的最上一条记录的位置,也就是这个备份集中现有的备份集数,如果超过7个,则清空所有的备份重新备份,否则进行差异备份。

    如果要实现每周备份,每月备份等,代码都是一样的,只是改变一下任务的执行时间就可以了。

    1. use [www-bpjd]
    2. declare @cc as int
    3. set @cc=(select top 1 position from msdb.dbo.backupset where media_set_id in (
    4. select media_set_id from msdb.dbo.backupmediafamily where logical_device_name='每日备份'
    5. ) order by backup_set_id desc)
    6. --select @cc
    7. if isnull(@cc,0)>7
    8.  backup database [www-bpjd] to 每日备份 with init
    9. else
    10.  backup database [www-bpjd] to 每日备份 with DIFFERENTIAL 
    展开全文
  • tp5.1中的php 计划任务的实现,本质上可以分为两种第一种封装在框架内部,在crontab -e中只要添加一,然后在框架内去扩展内容就好了(Laravel的schedule,任务调度),这种自由度比较高,也比较方便。第二种:创建好...

    78713637a4e04c84d01aded74d99af7a.png

    tp5.1中的php 计划任务的实现,本质上可以分为两种第一种封装在框架内部,在crontab -e中只要添加一条,然后在框架内去扩展内容就好了(Laravel的schedule,任务调度),这种自由度比较高,也比较方便。第二种:创建好PHP的执行脚本,在crontab中执行脚本,或者再写一个.sh 在crontab中执行,这种就需要在服务器上去执行一些文件,相对而言,比较麻烦,当然效果还是一样的。

    104cb9686ce2404c5ccfb3f3556ee788.png

    方法1.创建一个php脚本,1.php,创建一个test.sh ,赋予权限 chmod + x test.sh ,其中有个注意点 当时我去执行cd 命令的时候直接报错了,后来原因找到了,是由于你写*.sh的文件 是在windows ,然后在上传到liunx 服务器. windows 的编码格式是docs 而liunx 只能是unix. 解决办法:1. vi test.sh 文件 2.通过 :set ff 你会发现该文件的格式fomat=docs 3. 通过 :set ff=unix 然后 :x或:wq 保存并退出。

    /usr/bin/php /data/wwwroot/default/1.php

    最后在crontab中,一分钟执行一次,输出到log中去,查验效果就可以了。简单自测的方法 直接在test.sh 所在目录直接./test.sh或者是sh test.sh 就可以查看脚本运行结果了

    */1 * * * * sh /data/wwwroot/default/test.sh 2 >>/data/wwwroot/default/log.txt 

    方法2.利用tp自带的think自定义command 功能,在application/模块/新建一个command文件夹/Crontab.class.php,其中的class可以省略,假如在配置的app.php中关闭了class_suffix,修改文件名为Crontab.php

    namespace appapicommand;

    use thinkconsoleCommand;

    use thinkconsoleOutput;

    class Crontab extends Command

    protected function configure(){

    $this->setName('Crontab')->setDescription("计划任务 Crontab");

    protected function execute(Input $input, Output $output){

    $output->writeln('Date Crontab job start...');

    $output->writeln('Date Crontab job end...');

    配置command.php文件,位置在application/command.php

    return ['appapicommandCrontab'];

    打开命令行,运行php think Test命令test命令execute方法中运行的方法就会运行。剩下来的就是写一个Crontab.sh来执行,注意格式

    cd /data/wwwroot/default/purenfort-api

    /usr/bin/php think Crontab

    最后在crontab中,一分钟执行一次,输出到log中去,查验效果就可以了简单自测的方法直接在Crontab.sh所在目录直接 ./Crontab.sh或者是sh Crontab.sh 就可以查看脚本运行结果了 。注意php在shell脚本中要写全路径,注意.sh脚本权限、编码格式问题。其他就没啥了。

    ed85ff75ddd651e8f65d8512186f3e29.png

    展开全文
  • 画一虚线的学问

    2017-09-24 09:58:03
    一晃又是周末了,时间过得真快啊。今天我们来讲一讲如何画一线。有一些激动的小伙伴就要开喷了,画线这么简单需要...今天我们的任务就是实现它。 画线的需求大家经常遇到,非常的简单。 android:layout_width

    一晃又是周末了,时间过得真快啊。今天我们来讲一讲如何画一条线。有一些激动的小伙伴就要开喷了,画线这么简单需要你来逼逼啊。

    兄弟,话不能这么说。

    我们先看一下最终需要实现的效果,直接上图。




    看到中间的那一条虚线么?看上去还是蛮好看的。今天我们的任务就是实现它。


    画线的需求大家经常遇到,非常的简单。

    <view
        android:layout_width="1px"
        android:layout_height="match_parent"
        android:background="@color/colorBlue"/>


    这样就能画出一条线了。

    如果是画虚线呢?就需要在drawable文件夹下先定义一个shape样式,然后在layout文件中引用它。同样也非常的简单。

    我们先看一下shape的写法。


    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="line" >
        <stroke android:width="2dp" android:dashGap="5dp"
            android:dashWidth="4dp" android:color="@color/colorPrimary"  />
    </shape>


    这里有几个点需要注意一下。

    第一、首先stroke 的 width 是指的描边的宽度,这里一定要注意:在引用这个shape的时候,我们包裹这个虚线的布局宽高一定要大于这个描边的width,不然虚线显示不出来。

    其实也比较好理解,你样式里面定义的描边宽度比外面容器的宽度还要大,当然不能显示啊。


    举个例子,像现在我这里stroke 的 width 是2dp。如果我要画一条水平的虚线,在引用的时候我线条的 height 必须要不小于 2dp 才能显示。


    第二、我们要关闭硬件加速,不然明明在Android Studio上预览是虚线,一运行到真机上就会变成了实线。


    因为安卓3.0之后开启了硬件加速,而dashGap不支持硬件加速,所以关了就能正常显示虚线了。


    关闭的方式也有几种,我们来分享一下。

    1.直接在Manifest.xml中,application标签下加入这样一句话:android:hardwareAccelerated = "false" 。

    2.在代码中获取我们的虚线view,view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

    3.直接在xml中view的标签下加一句:android:layerType = "software";


    当然,你知道我的尿性,我一般推荐的方法放在最后面。

    第一种让整个应用都关闭硬件加速了;第二种还要在activity里面去绑定这个view,就为了加这么一句话,这也太麻烦了吧。所以我个人推荐第三种。当然怎么选看你自己。


    说了这么多,早就有小伙伴按耐不住了。

    “你这是你文章一上来说要实现的效果么,大骗子。”

    不要着急嘛,好文章和好酒是一样一样的,总是慢慢品才有味道的。


    我前面说的是如何实现虚线,接下来就是实现我们文章一开始给出那个样式的虚线了。

    看到效果的第一眼,我们应该就知道,这要用自定义view是没得跑了。


    当然有小伙伴们要说,你说自定义view没得跑,那我就不用自定义view,我就要用LinearLayout里面包裹view来实现。

    对于这种小伙伴,我只能说:“好好好,你棒棒。我服你。”


    不多逼逼,直接上代码再分析。


    public class GorgeousDottedLine extends View{
        private int width;
        private int height;
        private int[] colors =new int[]{0xFFE91313,0xFFE98713,0xFF1378E9,0xFFE91382};
        public GorgeousDottedLine(Context context) {
            super(context);
        }
    
        public GorgeousDottedLine(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            setMeasuredDimension(measureWidth(widthMeasureSpec),measureHeight(heightMeasureSpec));
        }
    
        private int measureWidth(int measureSpec) {
            int specMode = MeasureSpec.getMode(measureSpec);
            int specSize = MeasureSpec.getSize(measureSpec);
    
            if(specMode == MeasureSpec.EXACTLY){
                width = specSize;
            }else {
                width =getDefaultWidth();
                if(specMode == MeasureSpec.AT_MOST){
                    width = Math.min(width,specSize);
                }
            }
            return width;
        }
    
        private int getDefaultWidth() {
            return LinearLayout.LayoutParams.MATCH_PARENT;
        }
    
    
        private int measureHeight(int measureSpec) {
            int specMode = MeasureSpec.getMode(measureSpec);
            int specSize = MeasureSpec.getSize(measureSpec);
    
            if(specMode==MeasureSpec.EXACTLY){
                height = specSize;
            }else {
                height= getDefaultHeight();
                if(specMode == MeasureSpec.AT_MOST){
                    height = Math.min(height,specSize);
                }
            }
            return height;
        }
    
        private int getDefaultHeight() {
            return DisplayUtils.dp2px(getContext(),4);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint paint  = new Paint();
            paint.setStrokeWidth(height);
            paint.setAntiAlias(true);
            paint.setStrokeCap(Paint.Cap.ROUND);
            int count = 10;
            int total = count*4+count-1;
            for(int i=0;i<count;i++){
                paint.setColor(colors[i%4]);
                canvas.drawLine(width*(i*4+i)/total,height/2,width*(5*i+4)/total,height/2,paint);
            }
        }
    }


    整体的代码思路也比较简单,首先定义宽高和色号,测量都没什么好说的。

    我们重点讲一下onDraw()方法。

    我用画线而不是画矩形的的方式实现,所以我设置了一下strokeWidth 等于 height,同时在画的时候drawLine的 y 值我设置的是height/2。


    count是这条虚线总共有几个小段,下面的计算是把每一条虚线小段的宽度定义为每一条虚线小段的间隙宽度的4倍,所以虚线小段数有count个,虚线小段间隙有count-1个。

    然后计算每一个点的位置,由于他们是固定的规律,我就通过循环将他们画出来。


    思路就是这样。拜了个拜。






    展开全文
  • 4、鼠标移上去,内存插槽有两个,只使用了一个,由此可以查看电脑内存个数。 查询内存是DDR几的方法 1.运行cmd 2.输入wmic回车 3.输入memorychip回车 4.往右拉找到Speed Status 下面的数字,如果是 133-...
  • 1.汽车修理听上去可能有点疯狂,但是现代化的汽车越来越依赖于计算机了。事实上,如果没有一个计算机核心的话,现代化的汽车甚至完成不了一大半的任务。不管是排放控制、混合动力,还是刹车控制,汽车都依赖计算机...
  • (本来想传gif动画,但太大了传不上去) 要实现该逻辑,我们有以下几个任务 定义曲线点 定义曲线 绘制曲线 绘制控制把柄 与鼠标交互,可拖拽曲线点及控制把柄 2. 曲线的绘制 绘制曲线段很容易实现,用GDI+ 的...
  • C国有n座城市,城市之间通过m[b]单向[/b]道路连接。一路径被称为最短路,当且仅当不存在从它的起点到终点的另外一路径总...我们要求每边上最短路经过的数量,看上去非常不好求,但注意到点数只有1500,边数...
  • 这题考场上把子任务都敲满了,5个namespace,400行11k 结果爆0了哈哈,因为写了个假快读只能读入一位数,所以手测数据都过了,交上去全TLE了 把边分成三类:0. 需要染色的 1. 不需要染色的 2. 染不染色无所谓 考场上首先...
  • 利用周末的时间,将这两个功能添加上去了。如果将磁贴固定到开始屏幕,磁贴就会循环播放首页5“头条文章”所包含的的图片及标题,并且会显示还未阅读的数(badge)。另外,当用户点亮屏幕,后台任务自动执行刷新...
  • 发给第1小组一20米的绳子,第2小组一18米的绳子,第3小组一12米的绳子。 3.规则:用眼罩把所有人的眼睛蒙上,然后规定第一组圈出一个正方形,第二组围成一个三角形,第三组圈成一个圆形。 4.然后让大家联合...
  • freertos移植问题1

    2018-11-01 20:33:22
    最近要把freertos移植到之前的一个项目(mcu是nordic52832)上去(因为项目以前是裸机跑的,老大觉得代码可读性太差了,就让加入系统),直接使用nordic的sdk里面自带的freertos文件,全部加文件加进去之后,发现跑...
  • 情长在

    2009-06-02 16:26:00
     翠玉般的山谷处悠然飘来一小船,船头站着一位白衣少年,看上去不过二十三四岁,身后背着一柄长剑。近乎绝美的面庞不带半丝感情,只是漠然得吹着他那另人感到绝望的曲调。 又到执行任务的时候了,这次的目标是...
  • 近日,26位来自斯坦福、耶鲁、牛津、...双刃剑人工智能可以代替人类执行数据分析任务,从效率上来看,它可以在20毫秒甚至更短的时间内执行数百万指令,令很多以前看上去不切实际的任务变得迎刃而解。但不可否认...
  • 线程开启的三种方式

    2019-08-18 20:20:56
    具有完成独立任务的一执行路径 什么是多进程? 多个应用程序的集合 什么是多线程? 一个进程可以有一线程,一个进程也可以有多线程 多进程的好处? 能够合理的提高CPU的使用率 提高CPU的使用率 多线程的...
  • 如:我们将“任务i分配给节点j”这一动作,当作蚂蚁从任务i走向节点j的一路径。因此,pheromoneMatrix[i][j]就相当于i——>j这路径上的信息素浓度。 迭代搜索过程 /** * 迭代搜索 * @param iteratorNum ...
  • 之前在生产上部署了一个节点加多文件大小较大的流程图,在用eclipse改图的时候图是正常的,然后部署上去的时候发现有两线进和出的节点错乱了,导致流程走乱; 例子: 原先正确的流程图: 部署上去之后有问题的...
  • 那些令人惊艳的广告

    2020-12-19 15:55:16
    外表看上去线条柔和优美、但内在却有着非常强大的处理能力具有野兽般的快速、多任务处理能力 从语言学角度来说,也是英文中不可多得的好文案Beauty和beast是押头韵,outside和inside是押尾韵,整体对称感特别 强,...
  • python批量获取淘宝主图地址

    千次阅读 2018-03-30 20:01:03
    帮老婆整理一个任务表格,里面有几百淘宝商品的链接,还需要从商品页面截图放上去,一个一个截图太麻烦了,于是用正则表达式把地址提取出来,再用vba把图片地址转换为图片。 # -*- coding: UTF-8 -*- import ...
  • jstree如图所示 !... ... !... 可以从后台获取数据 ...但是无法显示在树上,当我写...不是数据多少的问题,我返回过数据更多的,都可以添加上去,数据的格式我也检查过了,例如b角任务下面27以后的内容格式和前面的是一样的。。
  • VC多线程编程详解

    2020-12-26 00:35:19
    本文实例讲述了VC多线程编程概念与技巧,分享...在多处理器的机器上,调度程序可将多个线程放到不同的处理器上去运行,这样可使处理器任务平衡,并提高系统的运行效率。 Windows是一种多任务的操作系统,在Windows的一
  • 使用的是Unity内置管线,后面有时间再学习:LWRP(URP),还有HDRP,学习任务有点多,一步一步来 ...可以看到纹理中部分的边缘信息也话上去了,如:白色丝绸的边缘,有还超短裙上的黑边条纹。 这些一般不是高...
  • 安全是始终贯穿于所有工作的主线,只有把这线抓好抓牢,我们的一切工作才能得心应手,我们的各项任务才能顺利完成。而人则是安全生产的主体,安全管理的关键是管人;管住了人,就管住了主动权。我认为应该做到“四...
  • GCD原理分析

    2018-07-26 07:50:08
    实际上CPU执行的CPU指令列为一无分叉路径,OSX 和iOS的核心XNU内核在发生操作系统事件时会切换路径,使用多线程的程序可以再某一线程和其他线程之间反复的上下文切换,看上去像一个CPU核能并行执行多个线程。...
  • We should: Good Good Study, Day Day Up

    千次阅读 2011-10-26 19:40:36
     在2011年10月13日,因为要去补假,去了老师办公室找班主任,这时,老师跟我说他想我上去给他们班的学生做一次关于大一要认真学习好好打好基础的演讲,原因是班主任希望低年级的学生能现在打好基础
  • GCD

    2017-08-07 11:35:58
    使用多线程的程序可以再某一线程和其他线程之间反复的上下文切换,看上去像一个CPU核能并行执行多个线程 2.在具有多CPU的情况下,是真正提供了多个CPU核并行执行多个线程的技术 二.GCDGCD是异步执行任务的技术之一,将...
  • together项目进度报告5

    2017-05-25 20:56:58
    这周至现在完成了一些搜索页面相关的任务,搜索界面设计如下图 可以看到,未输入之前仅有一平直的线和请输入关键字的提示。,担当点击输入框时,会弹出输入的光标,“请输入关键字”则会消失。当输入框内有...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

任务条上去了