TaskFlow主要由OpenStack社区在维护,致力于为一组任务的执行提供高效细粒度的控制。在Cinder组件源码中,创建卷等耗时比较长且容易出错的操作便利用到了taskflow,同样的,Neutron组件也使用它控制创建网络的复杂操作。
一、taskflow的特性
TaskFlow作为OpenStack的通用流程引擎,能让作业执行变得容易,同时满足三种特性。
1. 独立性
不相关的原子任务执行成功与否不影响其它原子任务的执行。
2. 中断性
一个编排任务在执行过程中可以暂停,下一次执行时能从暂停处继续执行。
3. 并发性
对于无序的多个任务,引擎能基于多协程多线程多进程来同时执行它们。
二、taskflow实现原理
1. 任务的抽象
三、taskflow在作业平台的应用
1. 作业平台的应用场景
在作业平台中进行编排任务的时候,不仅需要支持线性的工作流,还要支持能适应复杂场景的多分支工作流。
1.1 安装软件
以安装MariaDB为例
- 设置MariaDB yum仓库
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
# MariaDB 10.3 CentOS repository list - created 2018-09-19 02:18 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-ppc64le
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF - sudo yum install MariaDB-server MariaDB-client ;若安装失败则 yum remove mariadb-libs*,再执行sudo yum install MariaDB-server MariaDB-client
- systemctl start mariadb
- /usr/bin/mysqladmin -uroot password 'xx' 或 /usr/bin/mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it?