kotlin并发轮询1000订单尝试

package com.seu.android_diabetes.test

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object ApiClient {
    private const val BASE_URL = "http://192.168.31.247:8088/api/"

    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    val apiService: ApiService = retrofit.create(ApiService::class.java)
}

-------------------------------------------

package com.seu.android_diabetes.test

import retrofit2.http.GET

interface ApiService {
    @GET("orders")
    suspend fun getOrders(): List<Order>
}

---------------------------------------------
package com.seu.android_diabetes.test

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.RecyclerView
import com.seu.android_diabetes.R
import com.seu.android_diabetes.test.ApiClient.apiService
import kotlinx.coroutines.delay
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch

public class MainActivity : AppCompatActivity() {

    private lateinit var recyclerView: RecyclerView
    private lateinit var viewAdapter: OrderAdapter


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.test_main)
        recyclerView = findViewById(R.id.recyclerView)
        viewAdapter = OrderAdapter()
        recyclerView.adapter = viewAdapter

        // 启动协程,定时执行请求
        lifecycleScope.launch {
            while (isActive) {
                try {
                    val orders = ApiClient.apiService.getOrders()
                    viewAdapter.updateOrders(orders)
                } catch (e: Exception) {
                    Log.e("MainActivity", "Error fetching orders", e)
                }
                delay(5000) // 等待 5 秒
            }
        }
    }
}
-----------------------------------------------------------

kotlin用到了协程去访问spring boot的接口,接口用retrofit封装,每5秒轮询一次

package com.seu.spring_diabetes.controller;



import com.seu.spring_diabetes.pojo.TestOrder;
import com.seu.spring_diabetes.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api")
public class OrderController {
    @Autowired
    private OrderService orderService;

    @PostMapping("/orders")
    public int createOrder(@RequestBody TestOrder order) {
        return orderService.saveOrder(order);
    }

    @GetMapping("/orders")
    public List<TestOrder> getAllOrders() {
        return orderService.getAllOrders();
    }
}

spring boot端的存取订单的接口

postman的runner模拟一下1000个跌倒看看拉取的效果

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值