william.chan's blog

done is better than perfect

linux 计划任务 at 和 crontab

at 一次性计划任务;crontab 周期性计划任务

at 一次性计划任务 at -l 查看已经设置的任务 atrm 任务序号 删除 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@linuxprobe ~]# at 23:30 at > systemctl restart httpd at > 此处请同时按下Ctrl+d来结束编写计划任务 job 3 at Mon Apr 27 23:...

Shell中的 exit 0 与 exit 1 的区别

echo $? 为 0 表示程序正常退出,非 0 表示程序异常

exit 0 正常运行程序并退出程序; exit 0 非正常运行导致退出程序; exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 非 0 值,那么你的程序的使用者通常会认为你的程序产生了一个错误。 在 shell 中调用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 脚本中,通常会根据上一个命令的 $? 值来进行一些...

MySQL: show index && explain select ...

用 explain 语句判断select查询是否使用了索引

远程登录 mysql mysql -hrm-abcdefghijkl.mysql.rds.aliyuncs.com -uusername -ppassword -Ddatabase_name 显示索引信息 1 mysql> SHOW INDEX FROM table_name; https://www.runoob.com/mysql/mysql-index.html 判...

Linux: process VS thread

进程和线程的区别介绍

进程定义 是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。 进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。 线程定义 单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。 区别 一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。 线程是一种...

Gem: Sidekiq 如何处理异步任务

整体的架构 介绍任务的入队过程、Sidekiq 任务在 Redis 中的存储方式和消费者对任务的处理过程,除此之外,文章将介绍 Sidekiq 中间件的实现以及任务重试的原理。 参考链接 https://draveness.me/sidekiq/

Gem: sidekiq清空队列的两种方式

一是使用sidekiq的api,二是直接操作redis

使用sidekiq的api清空队列的任务 sidekiq里有提供操作队列的api,首先引入 require 'sidekiq/api' 获取所有队列:Sidekiq::Queue.all 获取默认队列:Sidekiq::Queue.new# the "default" queue 按名称获取队列:Sidekiq::Queue.new("mailer") 清空队列的所有任务:Sidekiq:...

Ruby: 类查找中 :: 的作用

:: 表示从顶层开始搜索

:: 表示从顶层开始搜索 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Violin class String attr_accessor :s, :vs def initialize @vs = self # 确保引用的是内置的原始 String 类,使用 `::` 双冒号 ...

Gem: 显示 Sidekiq Web UI

显示出sidekiq web ui的相关操作

Sidekiq Gemfile 1 2 gem 'sidekiq', '~> 6.0', '>= 6.0.6' gem 'sinatra', '~> 2.0', '>= 2.0.8.1' config/routes.rb 1 2 require 'sidekiq/web' mount Sidekiq::Web => '/sidekiq' bundl...

Ruby 语法:File.expand_path

项目中看到的 ruby 语法备注

File.expand_path 1 2 3 4 5 6 7 8 9 10 # config/application.rb # 加载 config/ 文件夹中的 property.rb 文件 require File.expand_path("../property", __FILE__) # __FILE__ 指当前文件 # ../ 表示 __FILE__ 的父目录 # 路径解析过程...

Linux 操作系统:/etc/passwd

《Linux 操作系统》用户账号文件 passwd

用户账号文件 /etc/passwd 文件的每一行 1 2 3 4 5 # 每一行保存一个用户的资料,用户数据按域以冒号 `:` 分隔 username:password:uid:gid:userinfo:home:shell # eg: webuser:x:500:500:webuser:/home/webuser:/bin/bash 用户影子文件 /etc/shadow 1 2...