Skip to content

unitus-jp/switch_api

Repository files navigation

Switch API

大学のプロジェクト課題で作成したAPIサーバーです。 家電製品を動かしたいという欲望で動いてるデザイアドリブン駆動なプロジェクトです。

基本git flowの思想の元ブランチは切っていて、 circleCIでテストを動かして通らない場合はプルリクを受け付けない方針をとっています。

下準備

クローンしたプロジェクト内のプログラムをコンパイルする

受信コマンドコンパイル

$ sudo gcc receive.c -o receive -lwiringPi

送信コマンドコンパイル

$ sudo gcc send.c -lm -o send -lwiringPi

サーバーを立てる

一部権限を求められるshコマンドが含まれているので、sudoをつけると間違いないかも

Rails立ち上げ

$ sudo rails s

Redis立ち上げ

$ redis-server

Resque立ち上げ

$ sudo QUEUE=* rake environment resque:work

scheduler立ち上げ

$ DYNAMIC_SCHEDULE=true rake environment resque:scheduler

ログを監視

$ tail -f log/outputFileName

スケジューラーに関して

cron形式でデータを渡す時の値の諸々

cronの設定

左から、[分] [時] [日] [月] [曜日] [コマンド]

  • 分は0~59の数字で指定
  • 時は0~23の数字で指定
  • 日は1~31の数字で指定
  • 月は1~12の数字で指定
  • 曜日に関しても数字で指定し、0と7が日曜日、1以降は順に、月、火、水、木、金、土となる

コマンドは、設定ファイルでパスを通していないものに関してはフルパスで指定するかカレントディレクトリからの相対パスで指定しなければならない、指定はこちらでするのでクライアントから引数を渡す時は曜日までの引数で良い

43 23 * * *               23:43に実行
12 05 * * *             05:12に実行
0 17 * * *                17:00に実行
0 17 * * 1                毎週月曜の 17:00に実行
0,10 17 * * 0,2,3         毎週日,火,水曜の 17:00と 17:10に実行
0-10 17 1 * *             毎月 1日の 17:00から17:10まで 1分毎に実行
0 0 1,15 * 1              毎月 1日と 15日と 月曜日の 0:00に実行
42 4 1 * *              毎月 1日の 4:42分に実行
0 21 * * 1-6            月曜日から土曜まで 21:00に実行
0,10,20,30,40,50 * * * * 10分おきに実行
*/10 * * * *        10分おきに実行
* 1 * * *         1:00から 1:59まで 1分おきに実行
0 1 * * *         1:00に実行
0 */1 * * *        毎時 0分に 1時間おきに実行
0 * * * *         毎時 0分に 1時間おきに実行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02に実行
30 5 1,15 * *       1日と 15日の 5:30に実行

デバッグに関して

APIのテスト用ページ

  SITE_URL/api/swagger

Resque Schedulerのログページ

  SITE_URL/resque

その他

データの同期に関して

本番サーバーからdumpファイルを作成

$ scp pi@hostname:~/rails_app/switch_api/db/development.sqlite3 ./dump.sqlite3

赤外線情報ファイルの取得

$ scp -r pi@hostname:~/rails_app/switch_api/data ./

Vagrantで実行する場合

$ vagrant up

$ vagrant ssh

$ cd /vagrant/

$ rails s -b 0.0.0.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published