PR

【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(並列処理で実現)

Python
スポンサーリンク
けんろう
けんろう

この記事では、Pythonで定期的に処理を実行するアプリの作り方を紹介します。 

Pythonで定期的に処理を実行する方法は、複数のやり方があります。
皆さんが作成したいプログラム構造によって、選択してもらえばよいかと思います。

・Scheduleモジュールを利用する方法
・並列処理
・tkinterを利用する方法

今回は、並列処理で実現する方法を紹介します。
その他の方法は、以下の記事で紹介しています。

この記事に載っているサンプルコードをコピーして、Pythonで実行すれば、簡単に動きを確認できますので、是非試してみて下さい。

この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。

並列処理を利用した方法

並列処理とは、複数のタスクをそれぞれ独立で動かすことができるプログラム構造のことです。

例えば、以下のような処理を記述できます。

UART受信タスクを100ms毎に起動して受信監視しつつ、
UART送信タスクを1000ms毎に起動して上位アプリからUART送信要求を処理する

並列処理での定期処理を理解するために、サンプルアプリを作ってみましょう

サンプルアプリ

0.5秒毎に、コンソールにメッセージを表示
2秒毎に、コンソールにメッセージを表示

サンプルコード

#!usr/bin/env python
# -*- coding: utf-8 -*-

import threading
import time
import datetime

def task(t,thread_num):

    while True:
        print("スレッド {} でのtask関数起動".format(thread_num),datetime.datetime.now())
        time.sleep(t)

# task関数をスレッド1で起動(引数として0.5と1を渡す)
thread1 = threading.Thread(name="thread1", target=task, args=(0.5,1))
# task関数をスレッド2で起動(引数として2と2を渡す)
thread2 = threading.Thread(name="thread2", target=task, args=(2,2))

# スレッド1開始
thread1.start()

# スレッド2開始
thread2.start()

動かし方

実行すると、コンソールに、以下が表示されます。

スレッド 1 でのtask関数起動 2022-06-05 01:48:24.102601
スレッド 2 でのtask関数起動 2022-06-05 01:48:24.103075
スレッド 1 でのtask関数起動 2022-06-05 01:48:24.608122
スレッド 1 でのtask関数起動 2022-06-05 01:48:25.113783
スレッド 1 でのtask関数起動 2022-06-05 01:48:25.614818
スレッド 2 でのtask関数起動 2022-06-05 01:48:26.119549
スレッド 1 でのtask関数起動 2022-06-05 01:48:26.119549
スレッド 1 でのtask関数起動 2022-06-05 01:48:26.629824
スレッド 1 でのtask関数起動 2022-06-05 01:48:27.145689
スレッド 1 でのtask関数起動 2022-06-05 01:48:27.661578
スレッド 2 でのtask関数起動 2022-06-05 01:48:28.123503
スレッド 1 でのtask関数起動 2022-06-05 01:48:28.171654
スレッド 1 でのtask関数起動 2022-06-05 01:48:28.677259
スレッド 1 でのtask関数起動 2022-06-05 01:48:29.184415
スレッド 1 でのtask関数起動 2022-06-05 01:48:29.699580

まとめ

今回は、並列処理を使って、定期的に処理を実行する方法を紹介しました。

オススメ

Pythonでプログラムを作るのなら、ラズパイが安くて、環境構築も楽で、おすすめです。

Raspberry Pi は、Raspberry Pi Foundationによって開発された低価格で小型のシングルボードコンピュータです。最初は教育目的で2012年にリリースされましたが、その手頃な価格と高性能により、教育用にとどまらず、さまざまなプロジェクトやプロトタイピングのプラットフォームとして広く利用されています。Raspberry Piは、LinuxベースのOSを主に使用し、簡単にカスタマイズ可能であるため、プログラミングやエレクトロニクスの教育、IoTデバイス、ホームオートメーション、メディアセンターなどに活用されています。

オススメ

AI(人工知能)特化型プログラミングスクール「Aidemy Premium」

Aidemy Premiumは、AIや機械学習などの最先端技術の修得に留まらず、それらを活用して目標達成を実現するまでを一気通貫して支援するオンラインコーチングサービスです。

こんな思いを持っている人にオススメ
・AIエンジニア/データサイエンティストにキャリアチェンジしたい
・業務課題(研究課題)をAIを使って解決したい
・教養としてAIについて知りたい
・AIに関してのスキルを身に着け就職活動に活かしたい…

オススメポイント
・3ヶ月間集中して「AIプログラミング」を修得するオンラインコーチングサービスです。
・完全なプログラミング初心者から研究者にまで幅広く優良なコンテンツを提供します。
・通常のプログラミングスクールとは異なり、受講者の進捗管理を徹底して行います。
・専属メンターがAIの学び方から徹底的にコーチングします。
・完全オンライン完結なので、東京以外に在住・在勤の方も気兼ねなくお申込み頂けます。

実績
・日本最大級のAI/人工知能プログラミングスクール
・SaaS型AI学習サービス「Aidemy」会員登録者数 55,000名突破
・法人向けAI内製化支援サービス「Aidemy Business」導入企業数 120社突破
・第16回 日本e-Learning大賞「AI・人工知能特別部門賞」受賞
・「HRアワード2019」プロフェッショナル部門 入賞

無料ビデオカウンセリング実施中です。

コメント

タイトルとURLをコピーしました