Replies: 7 comments 61 replies
-
データベース更新用プログラムとWebアプリケーションの結合部分についてこちらで話した通り、データベース更新用プログラムについてはWebアプリ側にデータ更新用のメソッドを作ってそれをPythonから叩いてもらうことを考えています。 |
Beta Was this translation helpful? Give feedback.
-
「更新」の用途がデータベースに対する読み取り以外の操作全般かカード1枚に対する更新か紛らわしいので何かうまい言い方を考えたいです |
Beta Was this translation helpful? Give feedback.
-
PythonとNodejs間でのデータの受け渡しや関数の呼び出しはどのような手法で行うことを想定していますか? |
Beta Was this translation helpful? Give feedback.
-
おそらくPythonとNodeの結合部分に着手できるだけの情報はほぼ出揃ったかと思うので、環境一式とそれっぽいコードを用意しました。 |
Beta Was this translation helpful? Give feedback.
-
余力があればPython・Node間で相互の死活監視が欲しいです |
Beta Was this translation helpful? Give feedback.
-
FANDOMからデータを回収してDB変更を実行するうえで、Python・Nodeの双方でログを残しておくことでシステム障害の復旧に役立つことが期待できます。今のところは検索だけなので障害でNeDBのデータが破損してもFANDOMのデータを正と決め打ちして回収できるため、v1.0.0では実装しないという判断もなくはないですが、v1.0.0で実装するのであれば出力場所や何を出力するかなどを決める必要があります。 |
Beta Was this translation helpful? Give feedback.
-
DB更新処理の実行間隔ですが、1日1回00:00に実行でどうでしょう。Fandomでのカードの更新や追加の頻度はあまり高くない(平均1回/日程度)ため、そこまで頻繁に実行する必要は無いと思います。 |
Beta Was this translation helpful? Give feedback.
-
データベース更新用プログラムの設計についてのディスカッションです。
カード更新・追加
機能
入力のカードデータのidに一致するカードを更新または一致するidが無ければカードを追加する。
入力
{
"pageid": Number // FANDOMのpageid
"name": String // 名称(カードの要素)
"cost": Number // コスト(カードの要素)
"attack": Number // 確保力(カードの要素)
"oc": String // オブジェクトクラス(カードの要素)
"maintypes": Array // メインタイプ(カードの要素)
"subtypes": Array // サブタイプ(カードの要素)
"effect" : String // 効果(カードの要素。ただし効果外テキストもここに記載される)
"tags": Array // タグ(カードの要素)
"banned": Boolean // 永久収容
"latest_revid": Number // FANDOMのリビジョン
}
urlは"http://localhost:55000/upsert"
出力
エラーがあった場合にのみ、
{ error: エラーメッセージ }
カード削除
機能
指定されたidのカードを削除する
入力
{
"deleteTargetCardPageids" : [Number]
}
urlは"https://localhost:55000/bulk_delete"
出力
エラーがあった場合にのみ、
{ error: エラーメッセージ }
DBカードデータのid、revid所得
機能
DBのカードデータを得る
入力
なし(GETメソッドを使用)
urlは"http://localhost:55000/current_cards"
出力
[
{
"pageid": Number // ページID,
"last_revid": Number // リビジョン
}
]
Beta Was this translation helpful? Give feedback.
All reactions