備忘録

備忘録

C#でcronの書き方でスケジュール実行する方法

Ⅰ. はじめに

cronは以下の書き方でスケジュール実行できます。
この記事ではC#でも以下の書き方でcronのようにスケジュール実行する方法(ライブラリ)を紹介します。

# 1分ごと
* * * * * command

# 1時間ごと
0 * * * * command

Ⅱ. やり方

1. CronSTD をインストールする
Install-Package CronSTD
2. サンプルプログラムを書く
static void Main(string[] args)
{
  var daemon = new CronDaemon();

  // 1分ごとに "hello1" をコンソールに出力する
  daemon.AddJob("* * * * *", Task);

  // 1分ごとに "hello2" をコンソールに出力する
  daemon.AddJob("* * * * *", () =>
  {
    Console.WriteLine("hello2");
  });

  daemon.Start();

  while (true)
  {
    Thread.Sleep(1000);
  }
}

static void Task()
{
  Console.WriteLine("hello1");
}
実行結果

f:id:kagasu:20181114154146p:plain

gitコマンドでGitHubのユーザー名、パスワードの入力を省略する方法

Ⅰ. はじめに

タイトルの通り「gitコマンドでGitHubのユーザー名、パスワードの入力を省略する方法」です。

Ⅱ. やり方

1. 以下のコマンドを任意のディレクトリで実行する
git config --global credential.helper wincred
2. 適当なコマンドを実行し、認証する
git pull origin master
3. これ以降の認証が全て省略される

HerokuでASP.NET Coreを動かす方法

Ⅰ. はじめに

タイトルの通り「HerokuでASP.NET Coreを動かす方法」です。

Ⅲ. やり方(Windows

1. VisualStudio で ASP.NET Core Web アプリケーションを作成する



2. Dockerfile を追加する



Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
COPY . .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet (your-project-name).dll
3. 実行ファイルを生成する

(your-project-name).csproj が存在するディレクトリで実行します

dotnet publish -c Release -r linux-x64
4. Heroku でアプリを作成する

https://dashboard.heroku.com/new-app

5. Heroku にデプロイする
cd (your-project-name)\bin\Release\netcoreapp2.1\linux-x64\publish
heroku container:login
heroku container:push web -a (your-app-name)
heroku container:release web -a (your-app-name)
// heroku open -a (your-app-name)
6. 実行結果


Ⅲ. やり方(Linux

1. ASP.NET Core Webアプリケーションを作成する
dotnet new mvc -o (your-project-name)
2. 実行ファイルを生成する

(your-project-name).csproj が存在するディレクトリで実行します

dotnet publish -c Release -r linux-x64
3. Dockerfile を作成する
cd (your-project-name)\bin\Release\netcoreapp2.1\linux-x64\publish
vim Dockerfile

Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
COPY . .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet (your-project-name).dll
4. Heroku でアプリを作成する

https://dashboard.heroku.com/new-app

5. heroku にデプロイする
heroku container:login
heroku container:push web -a (your-app-name)
heroku container:release web -a (your-app-name)
// heroku open -a (your-app-name)
6. 実行結果


その他

Heroku のログを見る方法
heroku logs --tail -a (your-app-name)

ネットワーク接続のコネクションを表示する方法

Ⅰ. はじめに

タイトルの通り「ネットワーク接続のコネクションを表示する方法」です。

Ⅱ. やり方

一覧表示
netstat -nat
ソートして表示
netstat -nat | awk {'print $5'} | cut -d ":" -f1 | sort | uniq -c | sort -n

WindowsでKotlin/Nativeを利用してHelloWorldする方法

Ⅰ. はじめに

タイトルの通り「WindowsでKotlin/Nativeを利用してHelloWorldする方法」です。

Ⅱ. やり方(CLI

1. kotlin-native をダウンロードする

2018/11/05時点の最新版は kotlin-native-windows-0.9.3.zip
https://github.com/JetBrains/kotlin-native/releases

2. サンプルプログラムを書く

main.kt

fun main() {
  println("Hello Kotlin/Native!")
}
3. コンパイルする
kotlinc-native main.kt -o out.exe
4. 実行結果
Hello Kotlin/Native!

Ⅲ. やり方(IDE

1. IntelliJ IDEAをダウンロードする

https://www.jetbrains.com/idea/

2. Kotlin プラグインを最新バージョンにアップデートする

f:id:kagasu:20181105025742p:plain

3. Kotlin/Native プロジェクトを作成する

f:id:kagasu:20181105025831p:plain

4. サンプルプログラムを書く

SampleMingw.kt

package sample

fun main() {
  println("Hello Kotlin/Native!")
}
5. コンパイルと実行する

build.gradle の runProgram を実行します
f:id:kagasu:20181105030929p:plain

6. 実行結果
Hello Kotlin/Native!

※実行ファイルは以下のディレクトリに出力されます

(project root)\build\bin\mingw\main\release\executable