首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >异步任务post方法WebAPI控制器

异步任务post方法WebAPI控制器
EN

Code Review用户
提问于 2017-09-02 13:01:01
回答 1查看 3.6K关注 0票数 0

我在WebAPI2控制器中有一个post方法。我只想确保我所做的一切都是正确的。我希望创建一个新任务,异步运行该方法并返回一条消息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public async Task<IHttpActionResult> Post([FromBody]Menu m)
{
    using (MySqlConnection con = new MySqlConnection(""))
    using (MySqlCommand cmd = new MySqlCommand("Insert into Menu (Description,LanguageId,IsActive) values (@Description,@LanguageId,@IsActive) ", con))
    {
        try
        {
            if (con.State == ConnectionState.Closed)
            {
                await con.OpenAsync();
                cmd.Parameters.AddWithValue("@Description", m.Description);
                cmd.Parameters.AddWithValue("@LanguageId", m.LanguageId);
                cmd.Parameters.AddWithValue("@IsActive", m.IsActive);
                await cmd.ExecuteNonQueryAsync();
            }
        }
        catch (MySqlException ex)
        {
            return Content(HttpStatusCode.NotFound,ex);
        }
        finally
        {
           await  con.CloseAsync();
        }
        return Ok("Inserted Succesfully");
    }
}

我应该创建一个新的异步方法来执行查询,然后将消息返回到控制器的post方法中,还是这是正确的方法?

EN

回答 1

Code Review用户

发布于 2017-09-08 08:13:41

你需要在这里处理单一责任原则。Post方法应该只处理HTTP请求,然后将其传递给另一个处理程序进行进一步操作,并在收到结果后,返回给用户。

您可以在代码中遵循SRP和DRY原则。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/174669

复制
相关文章
.net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
很久没有写博客了,今年做的产品公司这两天刚刚开了发布会,稍微清闲下来,想想我们做的产品还有没有性能优化空间,于是想到了.Net的异步可以优化性能,但到底能够提升多大的比例呢?恰好有一个朋友正在做各种语
用户1177503
2018/02/26
1.7K0
【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )
上一篇博客中 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 ) , 讲解了 AsyncTask<Params, Progress, Result> 异步任务的构造函数 ;
韩曙亮
2023/03/28
4750
等待多个异步任务的方法
Task.Wait(),这个是用来等待异步任务完成的一个方法,当我们有多个异步任务同时进行,需要等待所有异步任务完成或者等待某个异步任务完成的时候,就可以用WaitAll或WaitAny这两个方法,下面先看一段代码:
宿春磊Charles
2021/11/05
2.6K0
异步任务处理注解方法@Async实现异步多线程
1.定义配置类,设置参数 2.定义任务执行类 3.执行 Spring 中的ThreadPoolExecutor是借助JDK并发包中的java.util.concurrent.ThreadPoolExecutor来实现的。其中一些值的含义如下: int corePoolSize:线程池维护线程的最小数量 int maximumPoolSize:线程池维护线程的最大数量,线程池中允许的最大线程数,线程池中的当前线程数目不会超过该值。如果队列中任务已满,并且当前线程个数小于maximumPoolSize,那么会创建新的线程来执行任务。 long keepAliveTime:空闲线程的存活时间TimeUnit unit:时间单位,现由纳秒,微秒,毫秒,秒 BlockingQueue workQueue:持有等待执行的任务队列 RejectedExecutionHandler handler 线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。
oktokeep
2024/10/09
1220
WebApi开启CORS支持跨域POST
概念:CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 现象:如请求出现:Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested res
磊哥
2018/05/08
1.3K0
WebApi开启CORS支持跨域POST
python 异步post请求
import aiohttp headers = {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus 5 Build/MMB29K) tuhuAndroid 5.24.6', 'content-type': 'application/json'} async with aiohttp.ClientSession(headers=headers) as sess:
Wyc
2021/08/13
3.5K0
Asp.Net WebApi核心对象解析(二)
彭泽0902
2018/01/04
3.1K0
【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
韩曙亮
2023/03/29
16.6K0
ASP.NET WebAPI 路由规则与POST数据
Multiple actions were found that match the request:
liulun
2022/05/09
8110
ASP.NET WebAPI 路由规则与POST数据
springBoot异步任务、异步监控
除了自己实现线程外,springBoot本身就提供了通过注解的方式,进行异步任务的执行。下面主要记录一下,在springBoot项目中实现异步任务,以及对异步任务进行封装监控。
xcbeyond
2020/04/02
1.2K0
springboot任务之异步任务
此时我们启动服务器,并输出localhost:8080/hello,会在3s之后响应的success。
西西嘛呦
2020/08/26
4450
SpringBoot异步任务
在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题。
别团等shy哥发育
2023/02/25
3620
SpringBoot异步任务
Android异步任务
Android 异步任务队列实现AsynTask异步任务源代码解析 android异步任务 访问网络 加载图片 解决方案大集合 Android异步消息处理机制的源码分析 AsyncTask异步从网上下载图片 线程基本概念及编程 给 Android 开发者的 RxJava 详解 Android多线程编程的总结    ***************** 关于android中postDelayed方法的讲解 - 如是观的专栏 - 博客频道 - CSDN.NET 详细介绍AIDL 的使用 -
用户1733354
2018/05/22
7430
【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )
AsyncTask 构造函数作用 : 创建一个新的异步任务 , 该构造函数必须在 UI 主线程调用 ;
韩曙亮
2023/03/28
7580
Asp.Net WebApi核心对象解析(一)
本文主要介绍了ASP.NET Web API的背景、使用方法和核心对象,包括HttpRequestMessage、HttpResponseMessage、HttpClient等,并分析了如何使用这些对象来处理HTTP请求和响应。
彭泽0902
2018/01/04
4.5K0
SpringBoot中Async异步方法和定时任务介绍
1.功能说明 Spring提供了Async注解来实现方法的异步调用。 即当调用Async标识的方法时,调用线程不会等待被调用方法执行完成即返回继续执行以下操作,而被调用的方法则会启动一个独立线程来执行此方法。 这种异步执行的方式通常用于处理接口中不需要返回给用户的数据处理。比如当注册的时候,只需要将用户信息返回用户,而关于信息的保存操作可以使用异步执行。 Spring提供了Scheduled注解来实现定时任务的功能。 在异步方法和定时任务功能中都是开发这自己定义需要执行的方法,然后交给Spring容器管理
代码改变世界-coding
2018/07/03
2K0
Django操作异步任务
新增的异步任务必须以task.py命名,而且要放在你的django-web程序中,我这里是web
cywhat
2023/04/27
6800
SpringBoot异步任务记录
简介 突发奇想,就想玩一下异步任务,记得之前项目有个场景需要使用异步执行,但是异步调用没有成功,后来采用了多线程去执行,今天就系统的学习下异步执行任务。记录一下 有时候在项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能够并行执行, 我们可以使用多线程来并行的处理任务,也可以使用 spring 提供的异步处理方式 @Async 。 在异步处理的方法上添加注解 @Async ,就会启动一个新的线程去执行。 Spring 通过任务执行器 TaskExecutor ,来实现多线程
框架师
2021/08/05
5990
异步任务如何测试?
收到这样的问题,其实大家的问题都是通用的,那么正好整理下我的一些观点,供参考。
雷子
2022/12/29
9460
SpringBoot 异步任务处理
有些业务是不需要你同步去操作的, 例如: 适用于处理log、发送邮件、短信……等 我们不能因为短信没发出去而没有执行接下来的业务逻辑, 这个时候我们就应该去把这些耗时的任务弄成异步的
憧憬博客
2020/07/21
5980

相似问题

WebAPI控制器

10

包含三个内部任务的异步方法

30

异步任务实现

20

异步ASP.NET MVC 5控制器方法

20

带超时的异步任务

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文