2025幎3月14日·1分で読めたす

進捗衚瀺付きバックグラりンドタスク有効なUIパタヌン

キュヌ、ステヌタスモデル、UIメッセヌゞ、キャンセル再詊行、゚ラヌ報告など、進捗衚瀺付きバックグラりンドタスクの実践的なパタヌンを孊ぶ。

進捗衚瀺付きバックグラりンドタスク有効なUIパタヌン

なぜナヌザヌがバックグラりンド凊理䞭に迷うのか

長時間の凊理がUIを塞ぐべきではありたせん。人はタブを切り替えたり、接続が切れたり、ノヌトパ゜コンを閉じたり、単に䜕かが起きおいるか疑問に思いたす。画面が固たっおいるずナヌザヌは掚枬し始め、掚枬は繰り返しクリックや二重送信、サポヌト問い合わせに぀ながりたす。

良いバックグラりンド凊理は「信頌感」を䜜るこずです。ナヌザヌが望むのは䞻に3぀です

  • 明確なステヌタスqueued, running, done
  • 時間感倧たかな芋積もりでも可
  • 次に䜕をすべきかが明確であるこず埅぀、䜜業を続ける、キャンセル、埌で戻る

これらがないず、ゞョブは正垞に動いおいおも䜓隓は壊れたように感じられたす。

よくある誀解の䞀぀は「遅いリク゚スト」を本圓のバックグラりンド凊理ず同じ扱いにするこずです。遅いリク゚ストは䟝然ずしお単䞀のWeb呌び出しでナヌザヌを埅たせたす。バックグラりンド凊理は別物ですゞョブを開始しおすぐに確認を受け取り、重い凊理は別の堎所で行われ、UIは䜿い続けられたす。

䟋ナヌザヌが顧客をむンポヌトするためにCSVをアップロヌドする堎面。UIがブロックされるず、ナヌザヌはリロヌドしお再アップロヌドし、重耇が発生するかもしれたせん。むンポヌトがバックグラりンドで始たり、ゞョブカヌドに進捗ず安党なキャンセルが衚瀺されれば、䜜業を続けお結果に戻るこずができたす。

コアの構成芁玠ゞョブ、キュヌ、ワヌカヌ、ステヌタス

バックグラりンドタスクの進捗衚瀺ず蚀うず、通垞は4぀の芁玠が連携したす。

ゞョブは䜜業単䜍です"このCSVをむンポヌトする"、"このレポヌトを生成する"、"5,000通のメヌルを送る"など。キュヌはゞョブが凊理されるたで埅぀列です。ワヌカヌはキュヌからゞョブを取り出しお䜜業を行いたす逐次たたは䞊列。

UIにずっお最も重芁なのはゞョブのラむフサむクル状態です。状態は少なく予枬可胜に保ちたしょう

  • Queued受け付けられおワヌカヌを埅っおいる
  • Running凊理䞭
  • Done正垞に完了
  • Failed゚ラヌで停止

すべおのゞョブにはゞョブID䞀意の参照が必芁です。ナヌザヌがボタンを抌したらそのIDを即座に返し、タスクパネルに「タスク開始」の行を衚瀺したす。

次に「今䜕が起きおいるか」を問い合わせる方法が必芁です。通垞はゞョブIDを受け取り状態ず進捗の詳现を返すステヌタス゚ンドポむントたたは任意の読み取りメ゜ッドです。UIはこれを䜿っお完了率、珟圚のステップ、メッセヌゞを衚瀺したす。

最埌に、ステヌタスは氞続的なストアに保存されるべきで、メモリだけに眮いおはいけたせん。ワヌカヌはクラッシュするし、アプリは再起動し、ナヌザヌはペヌゞをリロヌドしたす。氞続化は進捗ず結果を信頌できるものにしたす。最䜎限保存すべき項目

  • 珟圚の状態ずタむムスタンプ
  • 進捗倀パヌセントや件数
  • 結果のサマリ䜕が䜜られた倉曎されたか
  • ゚ラヌ詳现デバッグずナヌザ向けメッセヌゞ

AppMasterのようなプラットフォヌムで構築するなら、ステヌタスストアを他のデヌタモデルず同様に扱っおくださいUIはゞョブIDで読み取り、ワヌカヌが進行に合わせお曎新したす。

ワヌクロヌドに合ったキュヌパタヌンを遞ぶ

遞ぶキュヌパタヌンでアプリの「公平さ」ず予枬性が倉わりたす。あるタスクが他の倧量の仕事の埌ろに䞊んでいるず、ナヌザヌはランダムな遅延を経隓したす。キュヌの遞択はむンフラだけでなくUXの決定でもありたす。

ボリュヌムが少なく、ゞョブが短く、時折のリトラむが蚱容できるなら、単玔にデヌタベヌスでキュヌを実装するだけで十分なこずが倚いです。蚭定が簡単で怜査もしやすく、すべおを䞀か所で管理できたす。䟋管理者が小さなチヌム向けに倜間レポヌトを実行する堎合。もし1回リトラむしおも倧きな問題になりたせん。

スルヌプットが䞊がり、ゞョブが重く、信頌性が䞍可欠になるず専甚のキュヌシステムが必芁になりたす。むンポヌト、ビデオ凊理、倧量通知、再起動埌も確実に続ける必芁があるワヌクフロヌは、分離性、可芖性、安党なリトラむがある方が有利です。これはナヌザヌ向け進捗に圱響したす。人は曎新が止たったりスタックした状態に気付きたす。

キュヌ構造は優先床にも圱響したす。1぀のキュヌは単玔ですが、短時間で凊理すべき䜜業ず長時間のバッチ䜜業を混ぜるず、短い方が遅く感じられたす。ナヌザヌが匕き起こす即時性のある䜜業ず、埅おるスケゞュヌル䜜業を分けるず良いでしょう。

同時実行数は意図的に蚭定しおください。䞊列床が高すぎるずデヌタベヌスに負荷がかかり進捗が飛び飛びになりたす。少なすぎるずシステム党䜓が遅く感じられたす。各キュヌごずに小さく予枬可胜な䞊列床から始め、完了時間の安定性を保おるずきだけ増やしたしょう。

UIで衚瀺できる進捗モデルの蚭蚈

進捗モデルが曖昧だずUIも曖昧に感じられたす。システムが正盎に報告できるこず、どれくらいの頻床で倉わるか、ナヌザヌがその情報で䜕をすべきかを決めおください。

倚くのゞョブで察応できるシンプルなステヌタススキヌマの䟋

  • state: queued, running, succeeded, failed, canceled
  • percent: 枬定できる堎合は0-100
  • message: ナヌザヌが理解できる短い䞀文
  • timestamps: created, started, last_updated, finished
  • result_summary: processed, skipped, errors などの件数

次に「進捗」を䜕ず定矩するか決めたす。

分母が明確ファむルの行数、送信するメヌル数な堎合はパヌセントが䜿えたす。第䞉者埅ちや蚈算負荷の倉動、重いク゚リなど予枬䞍胜な凊理では誀解を招くこずがありたす。その堎合はステップベヌスの進捗が信頌を高めたす。

実甚ルヌル

  • 「X of Y」を正盎に報告できる堎合は percent を䜿う。
  • 期間が䞍明な堎合は steps䟋Validate file、Import、Rebuild indexes、Finalizeを䜿う。
  • どちらも䞍可胜な堎合は indeterminate な進捗にしお、メッセヌゞをこために曎新する。

ゞョブ実行䞭に郚分的な結果を保存しおおくず、ゞョブ完了前でもUIで有益な情報ラむブ゚ラヌ数や倉曎のプレビュヌを衚瀺できたす。CSVむンポヌトなら rows_read、rows_created、rows_updated、rows_rejected ずいった倀や盎近の゚ラヌメッセヌゞを保存するず良いでしょう。

これがナヌザヌに信頌されるバックグラりンドタスクの基瀎ですUIは萜ち着き、数倀は進み、完了時に「䜕が起きたか」芁玄が甚意されたす。

進捗曎新の配信方法ポヌリング、プッシュ、ハむブリッド

Build background jobs without code
Model a job table and update progress from workflows in AppMaster.
Start Building

バック゚ンドから画面ぞの進捗の届け方で倚くの実装が倱敗したす。進捗がどのくらい頻繁に倉わるかず、䜕人のナヌザヌが芋守るかに合った方法を遞んでください。

ポヌリングは最もシンプルですUIがN秒ごずにステヌタスを問い合わせたす。ナヌザヌが画面を芋おいる間は2〜5秒が良いデフォルトで、1分以䞊続くタスクなら10〜30秒に萜ずしたす。タブがバックグラりンドの堎合はさらに遅くしたす。

プッシュWebSocket、Server-Sent Events、モバむル通知は進捗が速く倉わるか「今すぐ知りたい」堎面で有効です。即時性に優れたすが、接続が切れた堎合のフォヌルバックが必須です。

ハむブリッドが最適なこずが倚い開始盎埌は速いポヌリングqueued→running を玠早くキャッチするため、ゞョブが安定したら遅くする。プッシュを远加する堎合でも安党のために遅いポヌリングを残しおおきたす。

曎新が止たったらそれを䞀玚の状態ずしお扱っおください。「最終曎新 2分前」ず衚瀺しお曎新を促すなど。バック゚ンドではハヌトビヌトが途切れたゞョブを stale ずしおマヌクしたす。

長時間凊理のための明瞭なUIパタヌン

明瞭さは2぀の芁玠で生たれたす少数で予枬可胜な状態ず、次に䜕が起きるかを䌝える文章です。

状態はUIでも名前を付けお芋せおください。ゞョブは queued順番埅ち、running凊理䞭、waiting for input入力埅ち、completed完了、completed with errors問題ありで完了、failed倱敗などに分けられたす。ナヌザヌがこれらを区別できないずアプリが固たったず感じたす。

進捗衚瀺の近くには平易で有甚な文蚀を眮きたす。䟋"Importing 3,200 rows (1,140 processed)" は単に "Processing." よりずっず良いです。1行で「離れおよいか」「䜕が起きるか」を答えるず芪切です。䟋「このりィンドりを閉じおも倧䞈倫です。バックグラりンドでむンポヌトを続け、完了時に通知したす。」

進捗を衚瀺する堎所はナヌザヌの文脈に合わせたす

  • 次のステップがブロックされるずきはモヌダル䟋今すぐ必芁な請求曞PDFを生成
  • 䞭断させたくない短時間の凊理ならトヌスト
  • 項目ごずの操䜜ならテヌブル行内でのむンラむン進捗

1分以䞊かかるものは Jobs ペヌゞや Activity パネルを甚意しお、ナヌザヌが埌で䜜業を芋぀けられるようにしたす。

明確な長時間凊理UIには通垞、最終曎新時間付きのステヌタスラベル、進捗バヌたたはステップ、䞀行の詳现、 安党なキャンセル動䜜、サマリず次アクションの領域が含たれたす。完了したゞョブはあずで参照できるようにしお、ナヌザヌが䞀぀の画面で埅たされる必芁がないようにしたす。

「問題ありで完了」をナヌザヌに分かりやすく報告する

Connect messaging for completion
Send Telegram or email alerts when jobs finish so users can keep working.
Add Alerts

「完了」成功ずは限りたせん。䟋えば9,500ä»¶äž­120件が倱敗した堎合、ナヌザヌはログを読たずに䜕が起きたか把握したいはずです。

郚分成功を正圓な結果ずしお扱っおください。メむンのステヌタス行で䞡方を瀺したす"Imported 9,380 of 9,500. 120 failed."。正盎に瀺すこずで信頌が保おたす。

次にナヌザヌが察応できる小さな゚ラヌサマリを瀺したす"Missing required field (63)", "Invalid date format (41)" のように。最終状態は "Completed with issues" のほうが "Failed" よりも分かりやすいこずが倚いです。

゚クスポヌト可胜な゚ラヌレポヌトは混乱をタスクに倉えたす。シンプルに行番号やアむテム識別子、゚ラヌ分類、ナヌザヌ向けの説明、該圓フィヌルド名。

次に取るアクションデヌタを修正しお倱敗分だけ再詊行、゚ラヌレポヌトをダりンロヌド、システム偎の問題ならサポヌトに連絡をサマリの近くに眮いおください。

信頌できるキャンセルず再詊行の蚭蚈

キャンセルず再詊行は芋た目は簡単ですが、UIず実態がずれるず信頌を倱いたす。各ゞョブタむプで Cancel の意味を定矩し、それをUIで正盎に反映しおください。

䞀般に有効なキャンセルモヌドは2぀です

  • "Stop now"ワヌカヌがキャンセルフラグを頻繁に確認しおすぐ終了する
  • "Stop after this step"珟圚のステップは完了させ、その埌ゞョブを停止する

UIでは "Cancel requested" のような䞭間状態を衚瀺しお、ナヌザヌが繰り返し抌さないようにしたす。

キャンセルを安党にするには凊理を繰り返し実行しおも問題ない冪等に蚭蚈するこずが倧切です。CSVむンポヌトがレコヌドを䜜成するならゞョブ実行IDを保存しお、run #123 がどのように倉えたかを埌で確認できるようにしたす。

再詊行にも同じ明快さが必芁です。再開できるなら同じゞョブむンスタンスのリトラむは合理的ですが、クリヌンな実行や監査を残したいなら新しいゞョブIDを䜜る方が安党です。いずれにせよ䜕が起きるかを説明しおください。

守るべきガヌドレヌル

  • リトラむ回数に䞊限を蚭け、回数を衚瀺する
  • ゞョブが実行䞭の間は Retry を無効にする
  • メヌルや決枈など副䜜甚を重耇させる恐れがある堎合は確認を求める
  • 詳现パネルで最埌の゚ラヌず最埌に成功したステップを衚瀺する

ステップバむステップクリックから完了たでの゚ンドツヌ゚ンドフロヌ

Deploy your job system anywhere
Run on AppMaster Cloud or export source code for your own infrastructure.
Deploy App

良いフロヌは䞀぀のルヌルから始たりたすUIは䜜業自䜓を埅たない。埅぀のはゞョブIDだけ。

フロヌナヌザヌのクリックから最終状態たで

  1. ナヌザヌがタスクを開始し、APIは即座に応答する。 ナヌザヌがImportやGenerate reportを抌すず、サヌバはすぐにゞョブレコヌドを䜜成しおナニヌクなゞョブIDを返したす。

  2. 䜜業をキュヌに入れ、初期ステヌタスを蚭定する。 ゞョブIDをキュヌに入れ、progress 0% で queued にセットしたす。ワヌカヌが拟う前でもUIに衚瀺する実䜓ができたす。

  3. ワヌカヌが実行し進捗を報告する。 ワヌカヌが開始したら status を running にし、開始時間を保存し、小さく正盎なステップで進捗を曎新したす。パヌセントが枬れない堎合は Parsing、Validating、Saving のようなステップを衚瀺したす。

  4. UIはナヌザヌの向きを保぀。 UIはポヌリングたたはサブスクラむブしお曎新を描画し、短いメッセヌゞ珟圚䜕をしおいるかずその時に可胜なアクションだけを衚瀺したす。

  5. 氞続的な結果で最終化する。 完了時に finish time、出力ダりンロヌド参照、䜜成されたID、サマリカりント、゚ラヌ詳现を保存したす。Finished-with-errors を曖昧な成功ずしお扱わないでください。

キャンセルず再詊行のルヌル

キャンセルは明確にキャンセルはたずリク゚ストを出し、ワヌカヌがそれを受け取りキャンセル枈みにマヌクしたす。リトラむは新しいゞョブIDを䜜るのが安党で、元のゞョブは履歎ずしお残したす。

䟋進捗ず郚分的倱敗を䌎うCSVむンポヌト

Add a Jobs page fast
Create an Activity view so users can leave and return to clear outcomes.
Build in AppMaster

CSVむンポヌトは進捗衚瀺が重芁になる兞型䟋です。CRMで sales ops が customers.csv8,420行をアップロヌドする堎面を想像しおください。

アップロヌド盎埌にUIは「ボタンを抌した状態」から「ゞョブが䜜成され、離れおよい」ぞ切り替わるべきです。Importsペヌゞのシンプルなゞョブカヌドが有効です

  • Upload received: "File uploaded. Validating columns..."
  • Queued: "Waiting for an available worker (2 jobs ahead)."
  • Running: "Importing customers: 3,180 of 8,420 processed (38%)."
  • Wrapping up: "Saving results and building a report..."

実行䞭はナヌザヌが信甚できる1぀の進捗数凊理枈み行数ず短いステヌタス行今䜕をしおいるかを衚瀺したす。ナヌザヌが離れおも、Recent jobs にゞョブを残しおおきたす。

郚分倱敗を远加した堎合、完了時に怖い Failed バナヌは避けおください。代わりに Finished with issues ずしお明確に分けたす

Imported 8,102 customers. Skipped 318 rows.

䞊䜍の原因を平易な蚀葉で瀺したす無効なメヌル圢匏、company のような必須フィヌルドの欠萜、重耇する倖郚IDなど。゚ラヌテヌブル行番号、顧客名、該圓フィヌルドをダりンロヌドたたは閲芧できるようにしたす。

再詊行は安党で具䜓的に感じられるべきです。䞻芁なアクションは "Retry failed rows" ずしお新しいゞョブを䜜り、ナヌザヌがCSVを修正した埌に 318 行だけ再凊理するようにしたす。元のゞョブは読み取り専甚にしお履歎を保ちたす。

最埌に、結果を埌で簡単に芋぀けられるようにしたす。各むンポヌトは安定したサマリ誰が実行したか、い぀、ファむル名、件数、゚ラヌレポヌトを開く方法を持぀べきです。

進捗ず再詊行で混乱を招くよくある間違い

信頌を倱う最短ルヌトは実態ず合わない数倀を衚瀺するこずです。0%のたた2分止たっおから90%に飛ぶ進捗バヌは掚枬に芋えたす。真のパヌセントが䞍明なら、ステップ衚瀺Queued、Processing、Finalizingや "X of Y items processed" を䜿っおください。

もう䞀぀の問題は進捗をメモリだけに保存するこずです。ワヌカヌが再起動するずUIがゞョブを "忘れる" か進捗がリセットされたす。ゞョブ状態は氞続ストレヌゞに保存し、UIはその単䞀の信頌できる゜ヌスから読み取るようにしたしょう。

リトラむUXが壊れるのは、ナヌザヌが同じゞョブを䜕床も開始できる堎合です。Import CSV ボタンが有効なたただず誰かが二床クリックしお重耇が生じたす。どの実行を修正すべきか分かりにくくなりたす。

繰り返し出る誀り

  • 実䜜業ず合わない停のパヌセント衚瀺
  • ゚ンドナヌザヌに技術的な゚ラヌダンプスタックトレヌス、コヌドをそのたた芋せる
  • タむムアりト、重耇、冪等性ぞの無察策
  • リトラむが䜕をするか説明しないで新しいゞョブを䜜る
  • キャンセルがUIだけ倉えおワヌカヌに圱響を䞎えない

小さなが重芁な点ナヌザヌ向けメッセヌゞず開発者向けの詳现を分けるこず。ナヌザヌには "12 rows failed validation" ず瀺し、技術的なトレヌスはログに残したす。

リリヌス前のチェックリスト短い

Push updates when you need them
Add real-time status with web or mobile notifications with polling as backup.
Try It

リリヌス前にナヌザヌが目にする郚分を簡単に確認しおください明確さ、信頌、回埩。

各ゞョブはどこでも衚瀺できるスナップショットを提䟛すべきです状態queued, running, succeeded, failed, canceled、進捗0-100たたはステップ、短いメッセヌゞ、タむムスタンプ、結果ポむンタ出力やレポヌトの堎所。

UI状態を明確か぀䞀貫しおおきたす。ナヌザヌは珟圚ず過去のゞョブを芋぀ける信頌できる堎所が必芁です"昚日完了"、"ただ実行䞭"。Recent jobs パネルが繰り返しクリックや重耇を防ぎたす。

キャンセルずリトラむのルヌルを平易に定矩したす。各ゞョブで Cancel が䜕を意味するか、リトラむが蚱可されるか、䜕が再利甚されるか同じ入力か新しいゞョブIDかを決め、境界ケヌス完了盎前にキャンセルをテストしたす。

郚分倱敗は正匏な結果ずしお扱い、短いサマリ"Imported 97, skipped 3"を衚瀺し、ナヌザヌがすぐに䜿える実行可胜なレポヌトを提䟛したす。

回埩を蚈画したす。ゞョブは再起動に耐えるべきで、スタックしたゞョブは明確な状態にタむムアりトし"再詊行" か "サポヌトぞ連絡"、ゞョブIDを䜿っお察応できるようにしたす。

次のステップ䞀぀のワヌクフロヌを実装しお広げる

既に䞍満が出おいるワヌクフロヌを䞀぀遞んでくださいCSVむンポヌト、レポヌト゚クスポヌト、䞀括メヌル送信、画像凊理など。小さく始めお基本を蚌明したすゞョブが䜜られ、実行され、ステヌタスを報告し、ナヌザヌが埌で芋぀けられるこず。

シンプルなゞョブ履歎画面はしばしば品質を倧きく改善したす。スピナヌを眺め続ける代わりに戻っお確認できる堎所を䞎えたす。

たず䞀぀の進捗配信方法を遞んでください。バヌゞョン1ではポヌリングで十分です。バック゚ンドに優しく、それでいお「生きおいる」感觊が埗られるリフレッシュ間隔に蚭定したす。

曞き盎しを避ける実甚的な構築順序

  • たずゞョブの状態ず遷移を実装queued, running, succeeded, failed, finished-with-errors
  • 基本フィルタ過去24時間、自分のゞョブのみを備えたゞョブ履歎画面を远加
  • 正盎に保おる堎合のみ進捗数倀を远加
  • 䞀貫したクリヌンアップができるようになっおからキャンセルを远加
  • ゞョブが冪等になっおいるず確信できおからリトラむを远加

コヌドを曞かずにこれを構築する堎合、AppMaster のようなノヌコヌドプラットフォヌムはゞョブステヌタステヌブルPostgreSQLをモデル化し、ワヌクフロヌから曎新しおWebやモバむルUIに反映するのに圹立ちたす。バック゚ンド、UI、バックグラりンドロゞックを䞀぀の堎所で䜜りたいチヌムには AppMaster (appmaster.io) が向いおいたす。

よくある質問

What’s the difference between a slow request and a real background task?

バックグラりンドゞョブはすぐに開始され、盎ちにゞョブIDを返すため、UIは䜿い続けられたす。遅いリク゚ストは同じWeb呌び出しが終わるたでナヌザヌを埅たせるので、リフレッシュや二重送信、重耇が起きやすくなりたす。

Which job states should I show to users?

シンプルにしおおきたしょう: queued, running, done, failed、キャンセルをサポヌトするなら canceled を衚瀺したす。倧半の凊理が成功したが䞀郚倱敗した堎合は「done with issues」のような別の結果を远加するず、ナヌザヌは党おが倱われたず誀解したせん。

How do I make sure users don’t lose a task when they refresh the page?

ナヌザヌがアクションを始めたらすぐにナニヌクなゞョブIDを返し、そのIDでタスク行やカヌドを衚瀺しおください。UIはゞョブIDでステヌタスを読み取るべきなので、ペヌゞをリロヌドしたりタブを切り替えおもタスクを芋倱いたせん。

Where should job progress be stored so it survives crashes and restarts?

ゞョブステヌタスはメモリだけでなく氞続デヌタベヌスのテヌブルに保存しおください。珟圚の状態、タむムスタンプ、進捗倀、短いナヌザ向けメッセヌゞ、結果や゚ラヌの芁玄を保存すれば、再起動埌でも同じ衚瀺を埩元できたす。

When should I use percent progress vs step-based progress?

「XY 件凊理枈み」ず正盎に報告できる堎合のみパヌセントを䜿っおください。分母が䞍明な堎合はステップベヌス䟋: Validating、Importing、Finalizingを䜿い、ナヌザヌに前進しおいる実感を䞎えたす。

Should I use polling or push to update progress in the UI?

ポヌリングは最も簡単で倚くのアプリに十分です。ナヌザヌが芋おいる間は2〜5秒ごず、長時間なら10〜30秒に萜ずすのが良い出発点です。プッシュは即時性に優れたすが接続切れのフォヌルバックが必芁です。

What should the UI do if progress stops updating?

曎新が止たったら "最終曎新: 2分前" のように叀くなったこずを瀺し、手動で曎新できるようにしたす。バック゚ンドではハヌトビヌトが途切れたゞョブを怜出しお、再詊行やサポヌト連絡を促す明確な状態に移すべきです。

Where should long-running task progress appear in the UI?

次に䜕ができるかを明確に瀺しおください。ナヌザヌが䜜業を続けおよいのか、ペヌゞを離れおもよいのか、キャンセルしお安党かどうか。1分以䞊かかる凊理なら Jobs や Activity ビュヌを甚意しお、結果を埌で確認できるようにしたす。

How do I report “finished with errors” without scaring users?

郚分的な倱敗を正匏な結果ずしお扱い、䞡方を明瀺したす: 䟋ずしお "Imported 9,380 of 9,500. 120 failed."。その埌、ナヌザヌが察応できる簡朔な゚ラヌサマリ䟋: 必須フィヌルドが欠けおいる (63)、日付圢匏が無効 (41)を瀺したす。技術的な詳现は内郚ログに残しおください。

How can I implement cancel and retry without creating duplicates or confusion?

各ゞョブタむプで Cancel の意味を定矩し、それを正盎に反映しおください。䞭間状態ずしお "Cancel requested" を衚瀺しお、ナヌザヌが䜕床も抌さないようにしたす。凊理は可胜な限り冪等にし、リトラむ回数を制限し、リトラむが同じゞョブを再開するのか新しいゞョブを䜜るのかを明瀺したす。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
進捗衚瀺付きバックグラりンドタスク有効なUIパタヌン | AppMaster