こうこく
作 ▸
改 ▸

Node.jsでAmazon SQSをロングポーリングするサンプル

AWSのSQSで左から右に流すやり方を調べてて、以下の記事を見かけました。ロングポーリングというのが便利そうだったので、調べてNode.jsで書いてみました。

Amazon SQSを効率よく処理するための簡単なサンプルコード(perl / python) - アルパカDiary Pro

Node.js v9.6.1
作 ▸

SQLiteのsqlite_sequence (AUTOINCREMENT) の挙動

  • テーブルに初めて連番が振られたとき、sqlite_sequence にレコードが作成される。
  • sqlite_sequence のレコードは、各テーブルに最後に振られた連番を保持する。
  • sqlite_sequence のレコードを消すと、次の連番は現存するデータの最大値 + 1から再開する。
  • sqlite_sequence の値が巻き戻っても、次の連番が重複しないように調整してくれる。
作 ▸

テーブル状の2次元配列を、複数のカラム値をキーにした多次元連想配列に変形

複合キーのマスタとかをメモリ上にキャッシュしたい時に

// これを…
$before = [
	['key1' => 'A', 'key2' => 'X', 'key3' => '1', 'name' => '塩'],
	['key1' => 'A', 'key2' => 'Y', 'key3' => '1', 'name' => '砂糖'],
	['key1' => 'A', 'key2' => 'Y', 'key3' => '2', 'name' => 'しょうゆ'],
	['key1' => 'B', 'key2' => 'X', 'key3' => '1', 'name' => 'バルサミコ酢'],
];

// こう
$after = [
	'A' => [
		'X' => [
			'1' => ['key1' => 'A', 'key2' => 'X', 'key3' => '1', 'name' => '塩'],
		],
		'Y' => [
			'1' => ['key1' => 'A', 'key2' => 'Y', 'key3' => '1', 'name' => '砂糖'],
			'2' => ['key1' => 'A', 'key2' => 'Y', 'key3' => '2', 'name' => 'しょうゆ'],
		],
	],
	'B' => [
		'X' => [
			'1' => ['key1' => 'B', 'key2' => 'X', 'key3' => '1', 'name' => 'バルサミコ酢'],
		],
	]
];