예제 #1
0
        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");
                    }
                }
            });
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
                }
            });
        }