• cron式の説明 + robfig/cronのソースコード分解

    <パス robfiig/cron ソースコード解析 Cron式 参考Wiki https://en.wikipedia.org/wiki/Cron robfiig/cron プロジェクト情報 ダウンロードアドレス https://github.com/robfig/cron.git ファイルディレクトリの説明 constantde

    2022-03-01 14:08:30
  • Golang Cronタイムドタスク解析

    <パス 1. cron式の基本フォーマット linuxを使ったことがある人なら、cronについて知っているはずです。crontab -eを使えば、linuxの時間指定タスクを設定することができます。しかし、linuxのcronは分単位までしか正確ではありません。ここで議論しているcronのGo実装は秒単位の精度が可能ですが、この大きな違いを除けば、cron式の基本構文は類似し

    2022-03-01 12:50:35
  • コネクテックスを取得します。接続相手が適切に応答しなかったため、接続の試行に失敗しました。

    <パス このスクリーンショットの問題は、今日、次のようなときに発生しました。 go: finding module for package github.com/Sirupsen/logrus csphere-test/my-log imports github.com/Sirupsen/logrus: module github.com/Sirupsen/

    2022-02-22 09:37:26
  • Go言語 構造体とメソッドの基本構文

    構造体はさまざまな種類のデータを保持するために使用され、その動作はメソッドの形で宣言することができます。この記事では、go言語における構造体とメソッド、およびquot;継承がどのように実装されているかを紹介します。 構造体の種類 構造体型(struct)は、go言語におけるオブジェクト指向プログラミングの重要なツールとして、重要な位置を占めています。goにはクラスの概念がないため、構

    2022-02-15 22:53:59
  • Go言語におけるエスケープ分析とは一体何なのでしょうか?

    1. エスケープ解析の紹介 コンパイル原理で、ポインタのダイナミックレンジを解析する方法をエスケープ解析と呼ぶことは、コンピュータを学ぶ人なら知っている。平たく言えば、あるオブジェクトへのポインタが複数のメソッドやスレッドから参照されることを、そのポインタを "escape" と呼ぶのです。 Goのエスケープ解析は、静的コード解析の後にコンパイラが行うメモリ管理の最適化と簡略

    2022-02-15 18:19:29
  • Goはパニックによるプログラムクラッシュの問題を解決するためにdefer+recoverを使用します

    事例紹介 : 並行スレッドを立ち上げたが、並行スレッドがパニックを起こした場合、並行スレッドをキャッチしないとプログラムがクラッシュしてしまうので、ゴルーチン内でrecoverを使ってパニックをキャッチしてメインスレッドに影響がないように処理します。 コードはこのようになります。 package main import ( "fmt" "time" ) func say

    2022-02-15 17:59:23
  • データ競争のためのGo並行プログラミング

    1. 前書き goでは同時並行プログラミングは非常に簡単で、go func()を使ってゴルーチンを起動して何かをさせるだけです。最も一般的なバグは、同じマップに書き込むなどのスレッドセーフの問題に関連するものです。 2. データ競合 スレッドセーフを検出する方法はありますか? その答えは、1.1という早い段階で導入されたデータレースタグです。テスト実行時やコンパイル時に-

    2022-02-15 17:35:01
  • 囲碁がGC問題の引き金になる場合の話

    初期の頃によく蔑まれたのが、ガベージコレクション(以後:GC)の仕組みでSTW(Stop-The-World)時間が長いことでした。そこで、現時点では、STWの開始として、Go言語がGCを発動するのはいつなのか? 1. GCとは何ですか? コンピュータサイエンスにおいて、ガベージコレクション(GC)は、プログラムで使われなくなったオブジェクトとそれが占めるメモリをガベージコレクタが回

    2022-02-15 17:08:16
  • 囲碁言語におけるCGOの実践的な使用

           部門製品のビジネス関数は、Golangによって開発されたが、いくつかの関数は、これらのように、ネットSNMP、bfdプロトコルなどのC言語で書かれている、あなたが再編集するGO言語を使用する場合、両方の実装の複雑さもかなり長い時間がかかる、良いことは、GO言語は、直接大幅に効率を改善し、削減GOコード内のCライブ

    2022-02-15 16:30:06
  • Go(...)の3つのポイントを徹底分析 使用方法

    ...」は、実はgoの構文解析の砂糖の一種です。 最初の用途は、主に関数が複数の不定引数を持ち、複数の不定引数を受け入れることができる場合である。 2つ目の用途は、スライスを分割して渡すことができることです。 例 package main import ( "fmt" ) func main(){ name(1,2,3,4,5,6,7,8,9) // mul

    2022-02-15 11:49:08
  • golang はシンプルなウェブソケット・チャットルーム機能を実装しています。

    基本中の基本。 1. golang.org/x/net/websocket パッケージが導入されました。 2. ポートでリスニングする。 3. クライアントが接続すると、その構造体を送信する。{"type":"login","uid":"I am username","msg":"Login successful"}' ...という構造体を送信します。ログイン情報を元に、サーバーは異

    2022-02-15 11:11:44
  • Golang開発における共有変数問題の解決方法

    Goのゴルーチン+チャンネルは、通信によってメモリを共有し、並行プログラミングを可能にします。 しかし、Goは変数を共有することによって、つまりメモリを共有することによって並行処理を実現する伝統的な方法も提供しています。この記事では、Goがそのために提供するメカニズムについて説明します。 1. レースとは Goプログラムを実行しているとき、同時に多くのゴルーチンが実行され、各ゴ

    2022-02-15 11:07:53
  • ピン留めされたボットを使用してGoでメッセージをプッシュする例

    Goを学んだ後、最近の空いたポイントを使って、フロントエンドのデプロイツールを書こうと思います。毎回コピー&ペーストする手間を省き、デプロイ開始前とデプロイ終了後にネイルメッセージをプッシュしたいと思います ピン留めボットを作成する これは比較的簡単です 追加した後、メッセージを送信するアドレスであるwebhookが表示されます。 プッシュメッセージ コー

    2022-02-15 10:39:17
  • Redisをタスクキューとして利用する(Golang)

            での 前へ 分散キュー的なものを自分のマシンでピュアゴーでシミュレートしてみた。Redisキューの部分をここに追加。 Redisキューには、解決しなければならない3つの問題があります。  1. 待ち行列の構築      RedisのRPUSH/LPOPを使用します。 &nb

    2022-02-15 09:53:54
  • go言語 yaml からマップへの変換、マップトラバーサルの実装

    yamlファイルの内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snapshot spec: privileged: false allowPrivilegeEscalation: false volumes: - "*" hostNetwork: false

    2022-02-15 09:27:39
  • Golangを他の言語と区別する9つの特徴

    プログラミング言語が進化していく中で、Goはまだ非常に若い言語です。最初にリリースされたのは、2009年11月10日です。開発者のロバート・グリーセマー(Robert Griesemer)は Rob Pike と Ken Thompson は Google に勤務していましたが、大規模なスケーリングという課題から、複数の開発者によって管理され、厳しいパフォーマンスが要求され、複数のネットワー

    2022-02-15 08:30:12
  • golang exec シェル実行 出力の同期方法/実行結果の取得方法

    <パス 背景 このプロジェクトではシェルコマンドを実行する必要があり、exec パッケージでは CombinedOutput() メソッドは、シェルの実行終了時にその出力を返すものですが、ユーザーはタスクの起動時にログを更新しており、ログの同期表示を実現したい場合がありますが、その際に CombinedOutput() メソッドは、コマンドが完全に実行されたときに

    2022-02-15 07:05:50
  • Goにおける文字列と[]byteの効率的な相互変換の例

    前置き データのシリアライズやデシリアライズの操作にgoを使う場合、文字列とバイト配列の間の変換を伴うことが多いかもしれません。例えば if str, err := json.Marshal(from); err ! = nil { panic(err) } else { return string(str) } jsonは[]byte型にシリアライ

    2022-02-15 04:20:56
  • Go サービスでリンクトレースを行う方法を説明します。

    Goでマイクロサービスを開発する場合、各リクエストのアクセスリンクを追跡する必要がありますが、Goにはこれに対する良いソリューションがありません。 これは、Javaでは、プロセス内でリクエストのRequestIdを共有するMDCを使うことで解決しやすくなります。 Goでリンクトレースを実装するには2つの考え方があります。1つはプロジェクトのグローバルマップを使い、キーはgorouti

    2022-02-15 03:38:20
  • GO言語GolangのHelloWorldへの導入

    概要 Golangは新しいクロスプラットフォームプログラミング言語です。今日は、ホワイトがあなたをGolangの世界へご案内します。(レッスン1) Goの言語構造 プログラミング言語Goの基本的な構成要素を学び始める前に、Go言語の構造を見てみましょう。 Go言語の基盤は、以下の構成要素で成り立っています。 パッケージ宣言 パッケージ関数変数文の導入

    2022-02-15 02:59:25