private static void Start() { daemon = Task.Run(() => { while (true) { try { Thread.Sleep(1000); FileItem fileItem; if (!queueFileItems.TryDequeue(out fileItem)) { continue; } CurrentPositionInQueue++; // Si le client a pas demandé le progress depuis moins de 20s, lancer l'ipfs add if ((DateTime.UtcNow - fileItem.FileContainer.LastTimeProgressRequested).TotalSeconds <= FrontSettings.MaxGetProgressCanceled) { // Ipfs add file IpfsAddManager.Add(fileItem); } else { fileItem.IpfsErrorMessage = "Canceled"; fileItem.IpfsProgress = null; } // Si tout est terminé, supprimer le fichier source if (!fileItem.FileContainer.WorkInProgress()) { TempFileManager.SafeDeleteTempFile(fileItem.FileContainer.SourceFileItem.FilePath); } if (!fileItem.IsSource) { // Supprimer le fichier attaché TempFileManager.SafeDeleteTempFile(fileItem.FilePath); } } catch (Exception ex) { LogManager.AddIpfsMessage(ex.ToString(), "Exception non gérée"); } } }); }
protected override void ProcessItem(FileItem fileItem) { // Si le client a pas demandé le progress depuis moins de 20s, annuler l'opération if (!fileItem.IpfsProcess.CanProcess()) { string message = "FileName " + Path.GetFileName(fileItem.OutputFilePath) + " car le client est déconnecté"; LogManager.AddIpfsMessage(message, "Annulation"); fileItem.IpfsProcess.CancelStarted("Le client est déconnecté."); return; } // Ipfs add file IpfsAddManager.Add(fileItem); }
private static void Start() { daemon = Task.Run(() => { while (true) { FileItem fileItem = null; try { Thread.Sleep(1000); fileItem = null; if (!queueFileItems.TryDequeue(out fileItem)) { continue; } CurrentPositionInQueue++; // Si le client a pas demandé le progress depuis moins de 20s, annuler l'opération if ((DateTime.UtcNow - fileItem.FileContainer.LastTimeProgressRequested).TotalSeconds > FrontSettings.MaxGetProgressCanceled) { fileItem.IpfsErrorMessage = "Canceled"; fileItem.IpfsProgress = null; LogManager.AddIpfsMessage("FileName " + Path.GetFileName(fileItem.FilePath) + " car dernier getProgress a dépassé 20s", "Annulation"); } else { // Ipfs add file IpfsAddManager.Add(fileItem); } } catch (Exception ex) { LogManager.AddIpfsMessage(ex.ToString(), "Exception non gérée"); fileItem.IpfsErrorMessage = "Exception non gérée"; } fileItem.CleanFiles(); } }); }