标签: background-task

后台请求不执行Alamofire Swift

我试图在POST,GET等后台进行调用,以便在didReceiveRemoteNotification方法中更精确,因为它们开始作为推送通知到达.我的问题是,在我打开应用程序之前,所有Alamofire.request都不会在后台模式中调用.我现在有

我试图打开一个会话,但它不会使请求工作.

这些是我想在后台执行的(后台手机)

Alamofire.Manager(configuration: configuration).request(.GET, url, parameters: nil)
                        .responseJSON { (_, _, JSON, _) in
                            //println(JSON)
                                println(JSON)
                REST OF THE CODE 
Run Code Online (Sandbox Code Playgroud)

但是它不会起作用,即使我在这些请求下面添加代码也可以工作,但是请求的返回甚至是请求都没有.

uiapplicationdelegate swift background-task alamofire backgroundtaskidentifier

7
推荐指数
1
解决办法
4587
查看次数

如何在"django-background-tasks"中激活进程队列

我是Django和django-background-tasks软件包的新手.

我面临一个我无法做的问题/启动后台任务,除非我强行运行命令process_tasks,即python manage.py process_tasks.我想在不运行process_tasks命令的情况下执行/启动后台任务.

settings.py

MAX_ATTEMPTS=1
BACKGROUND_TASK_RUN_ASYNC = True
Run Code Online (Sandbox Code Playgroud)

tasks.py

from background_task import background
#included necessary packages for SMTP
@background(schedule=5)
def test():
    #send mail to some ids
Run Code Online (Sandbox Code Playgroud)

views.py

def index(request):
    test(schedule=5)
    return HttpResponse("Hello, world. ")
Run Code Online (Sandbox Code Playgroud)

忽略我的逻辑.

django multithreading python-2.7 background-task

7
推荐指数
2
解决办法
2574
查看次数

如何使用 django-background-tasks

我正在制作一个 Django 应用程序。为了根据行和评论计算提要的排名,我正在尝试使用 django-background-tasks。我在节点模型中使用的功能是:

    @background(schedule=60)
    def get_score(self):
        p = self.likes+self.comments    # popularity
        t = (now()-self.date).total_seconds()/3600  # age_in_hrs
        # last_activity =
        n = self.admin_score
        score = (p/pow((t+1), 1.2))*n
        self.score = score
        return score
Run Code Online (Sandbox Code Playgroud)

但我没有看到分数有任何变化。这意味着我正在以正确的方式做这件事,但我缺少基本概念。有人可以告诉我如何使用 django-background-tasks 来安排任务或向我推荐一些现有的文档。

python django background-task

6
推荐指数
3
解决办法
2万
查看次数

如何使用 Django 后台任务初始化重复任务?

我正在开发一个 django 应用程序,它从 Dropbox 读取 csv 文件,解析数据并将其存储在数据库中。为此,我需要后台任务来检查文件是否被修改或更改(更新),然后更新数据库。我试过“芹菜”,但未能用 django 配置它。然后我发现django-background-tasks比 celery 配置要简单得多。我的问题是如何初始化重复任务?
它在文档中有所描述, 但我找不到任何示例来解释如何使用repeatrepeat_until或文档中提到的其他常量。
任何人都可以用例子解释以下内容吗?

notify_user(user.id, repeat=<number of seconds>, repeat_until=<datetime or None>)
Run Code Online (Sandbox Code Playgroud)


重复以秒为单位给出。提供了以下常量:Task.NEVER(默认)、Task.HOURLY、Task.DAILY、Task.WEEKLY、Task.EVERY_2_WEEKS、Task.EVERY_4_WEEKS。

django asynchronous python-3.x background-task

6
推荐指数
1
解决办法
5387
查看次数

在ASP.NET Core中启动BackgroundService的正确方法

我已经在ASP.NET Core 2.1应用程序中实现了BackgroundService:

public class MyBackgroundService : BackgroundService
{
    protected override Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (true)
        {
            await DoSomethingAsync();
            await Task.Delay(10 * 1000);
        }
        return Task.CompletedTask;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经用我的ConfigureServices()方法注册了它:

services.AddSingleton<MyBackgroundService>();
Run Code Online (Sandbox Code Playgroud)

我目前(勉强地)通过StartAsync()从方法内部调用(而不是等待)该方法来启动它Configure()

app.ApplicationServices.GetService<SummaryCache>().StartAsync(new CancellationToken());
Run Code Online (Sandbox Code Playgroud)

启动长期运行的服务的最佳实践方法是什么?

c# dependency-injection background-task asp.net-core

6
推荐指数
1
解决办法
7034
查看次数

Django 后台任务 vs Celery

我正在尝试在 django 中执行一些消耗大量时间的任务。为此,我将运行后台任务。

经过一些研发,我找到了两种解决方案:

  • 芹菜与 RabbitMQ。

  • Django 后台任务。

这两个选项似乎都满足标准,但设置 Celery 需要一些工作。现在就第二个选项而言,设置相当简单,而且在相当短的时间内,我可以继续编写后台任务。现在我的问题是,如果我采用第二个选项:

  1. Django 后台任务的执行情况如何?(生产环境中的可扩展性明智)。
  2. 我可以轮询数据库中的任务(一段时间后)以检查任务的状态吗?
  3. Django-Background-tasks 的架构?找不到关于它的架构的任何明确解释(或者我错过了一些资源?)
  4. 再次回到第一点,Django 后台任务在生产中的表现如何。(谈论在产品中使用它的先前经验。)

python django task celery background-task

6
推荐指数
2
解决办法
3209
查看次数

SwiftUI 上的 BackgroundTasks 和 BGTaskScheduler 未触发

我正在尝试设置一些BackgroundTasks在应用程序关闭时定期运行一些代码(比如每天一次)。我相信BackgroundTasksswift 上的 API 就是为了这个?(如果我弄错了,请告诉我)。我按照Apple 文档上的文章来实现它,并调整它以适应 SwiftUI。

问题:后台任务永远不会触发,但处于“待处理”状态(如图所示)

免责声明:我确实添加了该Background Modes功能并进行了检查Background fetchBackground processing并将标识符添加到Info.plist

代码

Main- 设置应用程序委托,获取场景,设置 UserDefaults 计数器,获取所有待处理任务的按钮,显示 UserDefault 计数器的文本,添加到 UserDefault 计数器的按钮,schedule()当应用程序进入后台时调用任务

import SwiftUI
import BackgroundTasks

@main
struct GyfterApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    @Environment(\.scenePhase) var scene
    @AppStorage("test") var test = 1
    
    var body: some Scene {
        WindowGroup {
            VStack {
                Button("Test") {
                    BGTaskScheduler.shared.getPendingTaskRequests { all in
                        print("Pending Tasks Requests", all)
                    }
                }
                Text("\(test)") …
Run Code Online (Sandbox Code Playgroud)

ios swift background-task swiftui

6
推荐指数
1
解决办法
1103
查看次数

具有Android服务的Socket Io

美好的一天。考虑到Android的Socket IO库及其服务,我有一个非常具体的问题。

重要的是要提到我的设备是我正在测试的huawei p8 lite。

它在这里:

我有一个套接字Io库,该库正在我创建的服务中初始化

•我将侦听器设置为用于新消息的套接字io

•如果应用程序没有在用户进程中杀死,则一切工作都像字符。

•服务的目的是即使应用程序被杀死也保持套接字IO连接保持活动状态,以便向用户通知新消息。

•一旦应用程序被杀死,套接字IO连接即被断开

无论我尝试什么,我都会尝试所有可能的方法:隔离Service进程,为Service提供另一个进程,启动粘性,在服务销毁后立即重新创建它而不是粘性等等。

唯一有效的方法是startForeground()方法,但我不想使用它,因为它将遵循设计原则,而且我也不想显示有关正在运行的服务的任何通知。

我的问题是下一个:有人可以帮助我,告诉我即使应用程序被杀死了,我如何仍可以保持Socket IO连接的活动?

这是服务的代码。

package com.github.nkzawa.socketio.androidchat;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.Toast;

import java.net.URISyntaxException;

import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;

public class SocketService extends Service {
    private Socket mSocket;
    public static final String TAG = SocketService.class.getSimpleName();

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw …
Run Code Online (Sandbox Code Playgroud)

sockets service android threadpool background-task

5
推荐指数
1
解决办法
4650
查看次数

有谁知道如何迅速解决BackgroundTask问题?

将iPad更新到iOS 13后,我在应用程序内部使用后台任务,我的应用程序发出以下消息:

无法结束BackgroundTask:不存在标识符> 13(0xd)的后台任务,或者它可能已经结束。中断UIApplicationEndBackgroundTaskError()进行调试。

我使用UIApplicationEndBackgroundTaskError()进行了调试,但是没有得到任何结果,并且我已经在iOS 12和其他以前的版本上对其进行了测试,它运行良好。

swift background-task backgroundtaskidentifier ios12 ios13

5
推荐指数
1
解决办法
1136
查看次数

SwiftUI 和 .backgroundTask(.appRefresh(..)) 不工作

使用iOS16.1、Swift5.7.1、XCode 14.1、

我的 SwiftUI 应用程序将完成一些后台工作。

第一个问题:定期发生的后台工作只能在应用程序仍在运行时才能完成(即,如果应用程序没有完全关闭而是被其他应用程序覆盖),这是否正确?或者您可以使用完全封闭的应用程序定期执行后台工作吗?如果是,怎么办?

第二个问题:下面的代码有什么问题?

不幸的是,这段代码没有完成任何后台工作,为什么?(我尝试过使用和不使用调试器,而且我也在实际设备上尝试过)

(当然,我已经在info.plist中输入了必要的信息并添加了后台功能)

import SwiftUI
import BackgroundTasks

@main
struct MyApp: App {
    
    @Environment(\.scenePhase) private var phase
    
    @State private var counter = 0;
    
    var body: some Scene {
        WindowGroup {
            ZStack {
                Text("\(counter)")
            }
        }
        .onChange(of: phase) { newPhase in
            switch newPhase {
            case .background:
                scheduleDataRefetch()
            default: break
            }
        }
        .backgroundTask(.appRefresh("com.url.myidentifier")) {
            await refetch()
            scheduleDataRefetch()
        }
    }
    
    private func refetch() async {
        if await refetchData() {
            print("refetch done...")
        }
    }
    
    private func refetchData() async -> …
Run Code Online (Sandbox Code Playgroud)

task ios background-task swiftui

5
推荐指数
1
解决办法
882
查看次数