前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python实现定时任务的几种方法

Python实现定时任务的几种方法

作者头像
Steve Wang
发布于 2021-12-20 10:46:31
发布于 2021-12-20 10:46:31
3.9K00
代码可运行
举报
文章被收录于专栏:从流域到海域从流域到海域
运行总次数:0
代码可运行

死循环内sleep (轮询,阻塞)

在一个死循环内放入执行的任务,sleep一段时间之后再执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time

def func():
    print("func executed")

def timer():
    while True:
        func()
        time.sleep(5)

timer()

# 每隔5s执行一次func函数

该方法能够执行固定间隔时间的任务,时间间隔由time.sleep()的睡眠时间指定。

在循环内加入时间判断的逻辑也可以执行定时任务,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import datetime
date = datetime.datetime.now().strftime("%Y-%m-%d %H:%m")
if date == '2021-12-19 17:12':
    func()

但由于轮询的原因,能指定的时间粒度会比较粗。

因为sleep()是阻塞函数,该方法始终有一个缺点是等待的时间内什么都不能做。

threading模块的Timer

threading模块提供了一个定时器触发的函数Timer是一个非阻塞函数,但只能等待固定的时间,然后执行一次任务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import datetime
from threading import Timer

def func(para):
    print(para)
    print("func exexuted")

def timer(delay):
    hit = "timer called func"
    t = Timer(delay, func, (hit,))  # 三个参数分别是:延迟时间 调用函数 (传入调用函数的参数(必须是tuple))
    t.start()

timer(3.0)

实现非阻塞是通过另起一个线程实现的,这并不令人惊讶。

sche模块

Python内置了专用于调度的模块sche,它提供延时调度的机制,每次定时执行任务都必须写入一个调度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sched
scheduler = sched.scheduler(time.time, time.sleep) # 两个参数分别为 返回时间戳的函数,默认就是time.time 和 定时未到达之前执行何种函数阻塞,默认就是time.sleep

def func(para):
    print(para)
    print("func executed")

def timer(delay):
    hit = "scheduled func"
    scheduler.enter(delay, 0, func, (hit,)) # 四个参数分别为 延迟时间 优先级(如果调度包含多个任务,需指定优先级) 调用函数 传入参数
    scheduler.run()

timer(3)

主线程依然会阻塞,而且调度只生效一次,如果想再次执行,必须再次调用enter方法。

基于APScheduler实现定时任务

Python这个语言的优势就在于有丰富的第三方库,既然原生实现有这样那样的缺点,我们可以借助第三方库来实现定时任务。

APScheduler,即Advanced Python Scheduler的缩写,是一个简单易用的python定时框架。

APScheduler是一个强大的Python定时框架,它提供了基于日期、固定时间间隔、以及类Linux crontab类型的定时任务,并支持持久化和以daemon方式执行任务。

第三方框架需要安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install apscheduler

APScheduler包含四个组件:触发器(trigger)作业存储(job store)执行器(executor)和调度器(scheduler)

触发器(trigger)

触发器包含调度逻辑,每一个设定好的定时任务都有自己的触发器,用于决定下一次作业执行的时间。除了初始配置之外,触发器完全是无状态的。

APScheduler提供三种内置的触发器,这三种触发器也决定了定时任务的三种出发方式:

  • date: 特定时间点触发
  • interval: 间隔固定时间触发
  • cron: 以linux cron方式周期性触发。该方式最为强大,也能够实现前两种触发方式

作业存储(job store)

存储被调度的作业,默认的存储方式是存储在内存中(APScheduler默认使用MemoryJobStore),也支持保存在各种数据库中。一个作业的数据将在持久化时被序列化,并且被加载时被反序列化。调度器不能共享同一个作业的存储。

执行器(executor)

实际处理作业的运行,通常在作业中提交一个指定的函数到一个线程池或者进程池内运行。作业完成时,执行器将会通知调度器。 常用的executor有两种:

  • ProcessPoolExecutor
  • ThreadPoolExecutor

调度器(scheduler)

一般我们在一个应用内只使用一个调度器,开发者通常不会直接处理作业存储、调度器和触发器,调度器提供了能配置这些的接口。配置作业存储和执行器可以在调度器中完成,它添加、修改和移除作业等常见操作。

调度器的配置

APSchedule提供了配置字典和参数关键字两种配置调度器的方式,使用的时候既可以先创建调度器再添加和配置作业,也可以先以字典形式指定配置,然后再创建调度器。除此之外之外,还可以通过装饰器的方式直接将一个函数变成调度的作业。

下面提供几个不同的实例,来说明不同的调度器配置方法。

先创建调度器再添加和配置作业

BlockingScheduler和BackgroundScheduler

APScheduler支持两种调度器,一种是阻塞主线程的BlockingScheduler,另一种是在后台运行的BackgroundScheduler。 BlockingScheduler适用于定时任务是唯一要执行的任务,BackgroundScheduler适用于定时任务不是唯一的任务,主线程还有其他任务要执行,因此将定时任务作为后台任务来执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.blocking import BlockingScheduler  # 阻塞方法

def job(para):
	print(parm)
    print("job executed")

scheduler = BlockingScheduler()
scheduler.add_job(job, ['定时器任务'], 'interval', seconds=5)  # 第一个参数指定要执行的函数 第二个参数指定传入的参数 第二个参数指定调度方式 也可以是'date'或者'cron' 第三个参数是'interval'间隔调度模式下间隔的时间 也可以指定hours或者minutes
scheduler.start()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.background import BackgroundScheduler  # 非阻塞方法

def job(para):
	print(parm)
    print("job executed")

scheduler = BackgroundScheduler()
scheduler.add_job(job, ['定时器任务'], 'interval', seconds=5)
scheduler.start()

使用字典方式配置调度器

其实就是以字典的形式指定参数,看一下例子就明白了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pymongo import MongoClient
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.jobstores.memory import MemoryJobStore
from apscheduler.jobstores.mongodb import MongoDBJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
# MongoDB 参数
host = '127.0.0.1'
port = 27017
client = MongoClient(host, port)
# 输出时间
def job():
    print("jon executed")

# 存储方式配置
jobstores = {
    'mongo': MongoDBJobStore(collection='job', database='test', client=client),
    'default': MemoryJobStore()
}
# 执行器配置
executors = {
    'default': ThreadPoolExecutor(10),
    'processpool': ProcessPoolExecutor(3)
}
job_defaults = {
    'coalesce': False,
    'max_instances': 3
}
scheduler = BlockingScheduler(jobstores=jobstores, executors=executors, job_defaults=job_defaults)
scheduler.add_job(job, 'interval', seconds=5, jobstore='mongo')
scheduler.start()

装饰器方式配置调度器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
# 直接在被调度函数前加装饰器
@scheduler.scheduled_job('interval', id='job_id', seconds=5)
def job_function():
    print("Hello World")

scheduler.start()

调度方式

interval方式

间隔调度,即每隔一段固定的时间就执行一次。

上面的两个例子即为间隔调度的方式,除此之外,间隔调度还可以使用的参数包括:

  • weeks (int) – number of weeks to wait
  • days (int) – number of days to wait
  • hours (int) – number of hours to wait
  • minutes (int) – number of minutes to wait
  • seconds (int) – number of seconds to wait
  • start_date (datetime|str) – starting point for the interval calculation
  • end_date (datetime|str) – latest possible date/time to trigger on
  • timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations

start_dateend_date还可以指定任务开始日期和结束日期,timezone参数虽然博文的例子都没有使用,但是建议使用,例子如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.background import BackgroundScheduler  # 非阻塞方法

def job(para):
	print(parm)
    print("job executed")

scheduler = BackgroundScheduler()
scheduler.add_job(job, ['定时器任务'], 'interval', hours=5, timezone='asia/shanghai')
scheduler.start()

除了interval调度方式,还有date方式和cron方式。

date方式

最基本的方式,作业只会执行一次

date方式接收两个参数:

  • run_date指定运行时间,可以精确到秒
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from datetime import date
from apscheduler.schedulers.blocking import BlockingScheduler

def job(para):
    print(para)
    
scheduler = BlockingScheduler()
# The job will be executed on December 19th, 2021
scheduler.add_job(job, 'date', run_date=date(2021, 12, 19), args=['定时器任务'])
scheduler.add_job(job, 'date', run_date=datetime(2021, 12, 19, 18, 39, 5), args=['定时器任务']) # 年月日 时分秒
scheduler.add_job(job, 'date', run_date='2021-12-19 18:39:05', args=['定时器任务']) # 上面的另一种形式

# The 'date' trigger and datetime.now() as run_date are implicit
# 上面的英文的意思是date触发器是默认的触发器,此时此刻是默认指定的运行时间 所以可以省略 指定的任务将会立即执行
scheduler.add_job(job, args=['text'])
scheduler.start()
cron方式*(最重要)

cron方式类似于Linux的crontab命令,最为强大,也能够实现前两种调度方式。

Linux的crontab命令使用时需要指定6个参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crontab t1 t2 t3 t4 t5 job

其中 t1 是表示分钟,t2 表示小时,t3 表示一个月份中的第几日,t4 表示月份,t5 表示一个星期中的第几天。job表示要执行的程序。 当t1为时表示每分钟都要执行 program,t2 为时表示每小时都要执行程序,其余类推。 当t1为a-b时表示从第 a 分钟到第 b 分钟这段时间内要执行,t2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推。 当t1为*/n时表示每 n 分钟个时间间隔执行一次,t2为 */n 表示每 n 小时个时间间隔执行一次,其余类推。 当t1为a, b, c,… 时表示第 a, b, c,… 分钟要执行,t2为 a, b, c,…时表示第 a, b, c…个小时要执行,其余类推。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

完整说明可以参见:Linux crontab 命令

APScheduler则进行了简化,使用如下参数指定cron类型的任务:

  • year (int|str) – 4-digit year
  • month (int|str) – month (1-12)
  • day (int|str) – day of the (1-31) – week (int|str) – ISO week (1-53)
  • day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun)
  • hour (int|str) – hour (0-23)
  • minute (int|str) – minute (0-59)
  • second (int|str) – second (0-59)
  • start_date (datetime|str) – earliest possible date/time to trigger on (inclusive)
  • end_date (datetime|str) – latest possible date/time to trigger on (inclusive)
  • timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone)

注意,为了和date做区分,时间参数全部不加s。

Expression

Field

Description

*

any

Fire on every value

*/a

any

Fire every a values, starting from the minimum

a-b

any

Fire on any value within the a-b range (a must be smaller than b)

a-b/c

any

Fire every c values within the a-b range

xth y

day

Fire on the x -th occurrence of weekday y within the month

last x

day

Fire on the last occurrence of weekday x within the month

last

day

Fire on the last day within the month

x,y,z

any

Fire on any matching expression; can combine any number of any of the above expressions

一个使用实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.blocking import BlockingScheduler

def job():
    print("Hello World")
    
# BlockingScheduler
scheduler = BlockingScheduler()
# Schedules job_function to be run on the third Friday
# of June, July, August, November and December at 00:00, 01:00, 02:00 and 03:00
scheduler.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
# Runs from Monday to Friday at 5:30 (am) until 2021-12-30 00:00:00
scheduler.add_job(job_function, 'cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2021-12-30')
scheduler.start()

job操作

添加job
  • add_job()
  • scheduled_job()

第二种方法只适用于应用运行期间不会改变的 job,而第一种方法返回一个apscheduler.job.Job 的实例,可以更改或者移除job。

移除job
  • job.remove() 使用 add_job() 返回的实例移除作业
  • remove_job() remove_job使用 jobID移除作业
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
job = scheduler.add_job(myfunc, 'interval', minutes=2)
job.remove()
# use id
scheduler.add_job(myfunc, 'interval', minutes=2, id='my_job_id')
scheduler.remove_job('my_job_id')
暂停和恢复job
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 暂停
apscheduler.job.Job.pause()
apscheduler.schedulers.base.BaseScheduler.pause_job()
# 恢复
apscheduler.job.Job.resume()
apscheduler.schedulers.base.BaseScheduler.resume_job()
获取 job 列表
  • 使用get_jobs() 获得可调度 job 列表,它会返回所有的job实例。
  • 使用print_jobs() 来输出所有格式化的job列表。
修改 job

除了 jobID 之外 job 的所有属性都可以修改,可以使用apscheduler.job.Job.modify()或者modify_job()修改一个job的属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
job.modify(max_instances=6, name='Alternated name')
modify_job('my_job_id', trigger='cron', minute='*/5')
关闭job

默认情况下调度器会等待所有的 job 完成后,关闭所有的调度器和作业存储。将wait选项设置为False可以立即关闭。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scheduler.shutdown()
scheduler.shutdown(wait=False)

scheduler事件

scheduler可以添加事件监听器,在被监听事件发生时触发。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def my_listener(event):
    if event.exception:
        print('The job crashed :(')
    else:
        print('The job worked :)')
# 添加监听器
scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)

参考文献

Python 实现定时任务 Python定时库APScheduler原理及用法

(部分参考文献已在文中列出)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
新手别怕!3 分钟学会扣子(coze)基础智能体部署
扣子Coze AI,由字节跳动匠心打造,是一款功能强大的AI智能体开发平台。借助该平台,用户能够轻松创建、灵活配置并便捷发布各类AI智能体(即机器人)。扣子Coze AI搭载了先进的自然语言处理(NLP)技术,这使其具备了广泛的应用潜力,可被用于搭建聊天机器人,实现人机间流畅的对话交流;构建自动化客服系统,高效解决客户咨询问题;开发智能助手,为用户提供贴心的日常事务协助等丰富多样的应用场景 。
意疏
2025/03/20
1.1K0
新手别怕!3 分钟学会扣子(coze)基础智能体部署
飞书多维表格+DeepSeek:生产力大幅度提升
当你还在官网一遍遍重试时,我已经使用飞书多维表格中的DeepSeek R1实现批量化处理信息和任务,效率提升10倍。
AI研思录
2025/02/20
6920
飞书多维表格+DeepSeek:生产力大幅度提升
4个AI提示词模板,帮你躺赢10万+爆文,第三个太狠了!
写了好文章却没人点击?问题可能出在标题上!这个提示词能帮你生成10个吸引眼球的标题方案,激发读者好奇心,让你的文章阅读量瞬间暴涨!
一臻AI
2025/03/29
1470
4个AI提示词模板,帮你躺赢10万+爆文,第三个太狠了!
AI智能体|老板以为我在加班做Excel图表,其实是DeepSeek+扣子(Coze)在帮我!
小王是某电商平台的运营专员,每周一的工作就是整理上周的销售数据,制作可视化报表给领导汇报。
一臻AI
2025/04/28
3821
AI智能体|老板以为我在加班做Excel图表,其实是DeepSeek+扣子(Coze)在帮我!
Deepseek52条喂饭指令
- 指令:以[身份]的口吻,写一篇[产品]的种草笔记,突出5个使用场景和3个痛点解决方案。
程序员皮皮林
2025/02/09
1600
探秘 AI Agent 之 Coze 智能体:插件创建与使用(7/30)
摘要:Coze 智能体作为新一代 AI 应用开发平台,其插件功能发挥着至关重要的作用。本文详细阐述了 Coze 智能体插件的多方面内容。首先介绍平台特点及插件重要性,插件能通过调用外部 API 扩展智能体能力。接着分析其功能扩展优势及与其他功能协同性,在内容创作、数据分析等多领域有广泛应用场景。文中细致讲解了插件创建步骤,从准备工作到具体流程,包括配置信息、设置参数及测试发布等。还说明了插件使用方法,如添加到智能体、结合工作流运用及多插件协同案例。通过不同场景实战案例展示其价值,并分享常见问题解决办法。最后探讨行业趋势,展望插件未来功能拓展方向,为读者深入理解和运用 Coze 智能体插件提供全面指导。
正在走向自律
2024/12/18
1.9K0
探秘 AI Agent 之 Coze 智能体:插件创建与使用(7/30)
【AIGC】ChatGPT提示词Prompt助力自媒体内容创作升级
以下是董宇辉老师的省市作文集关于北京的文章,作为本次例子中的ChatGPT仿写文章:
CSDN-Z
2024/10/17
2780
【AIGC】ChatGPT提示词Prompt助力自媒体内容创作升级
如何用AI创作10W+阅读量的爆款文章?四步轻松达成
撰写一篇能吸引十万加阅读量的爆款文章,需要深入了解这些文章之所以成功的内在因素。每一则广受欢迎的文章背后,都蕴含着精心的设计与技巧。即便对于普通作者来说,只要掌握文章的结构、逻辑、风格以及标题等核心元素的解析方法,便能在模仿与学习的过程中逐步提升个人的写作水平。借助现代技术的力量,如人工智能(AI)的帮助,分析与仿写文章的过程将变得更加便捷。
凯哥Java
2024/11/27
3160
如何用AI创作10W+阅读量的爆款文章?四步轻松达成
【愚公系列】《高效使用DeepSeek》025-科普内容生成
📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!
愚公搬代码
2025/04/01
1700
告别加班!用DeepSeek搭建全自动爆款图文工厂
当传统内容生产者仍在手工打磨作品时,人工智能技术正以量子级内容生成力重塑行业规则。
云惑雨问
2025/03/17
2200
告别加班!用DeepSeek搭建全自动爆款图文工厂
Coze bot 使用&变现手册,核心是动起来
今天,我们就来聊一聊字节跳动刚推出的一个非常酷的平台——coze.cn。这个平台简直是为编程小白和资深程序员都准备的“AI梦工厂”。(体验过,0代码,比 GPTs 配置还顺畅,还可以自己的知识库拓展等等功能)
老表
2024/02/06
5.4K0
Coze bot 使用&变现手册,核心是动起来
【AIGC】ChatGPT提示词Prompt解析:如何生成爆款标题、节日热点文案与完美文字排版
随着ChatGPT的不断发展与进化,未来它在内容创作中的应用将更加广泛和智能化。从生成情绪化爆款标题到紧跟节日热点的文案创作,再到优化排版技巧,ChatGPT不仅能够帮助创作者更高效地完成任务,还能通过数据分析和深度学习不断提升内容的精准度和个性化。
CSDN-Z
2024/10/17
4330
【AIGC】ChatGPT提示词Prompt解析:如何生成爆款标题、节日热点文案与完美文字排版
龙哥风向标20231017 GPT拆解
盈利点:利用小红书博主发布的笔记和销量信息,可以进行服装短视频带货或图文带货的模仿学习,从中获取盈利。
ApacheCN_飞龙
2024/01/31
1660
DeepSeek 技术创作者 10 倍速构建专业影响力 —— 现场回顾
大家好,我是默语!3 月 9 日,我在杭州参加了 线下活动,与众多 AI 技术创作者、专家和行业大咖们齐聚一堂,深入探讨 AI 时代如何快速构建个人 IP,并高效进行技术创作。
默 语
2025/03/10
1010
DeepSeek 技术创作者 10 倍速构建专业影响力 —— 现场回顾
探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)
Coze 智能体是基于机器学习和自然语言处理技术的软件实体,它在人工智能领域扮演着重要的角色,能够像一个智能助手一样,通过与外界环境进行交互学习,进而执行各种各样的任务。
正在走向自律
2024/12/18
10K0
探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)
Coze 扣子 | AI 养育计划 - "Flutter 大师"
扣子(coze.cn)是一款用来开发新一代 AI Chat Bot 的应用编辑平台。其中可以构建自己的知识库以及作为资源,这样的话,让 AI Bot 拥有我所有文章的 "智慧",岂不是一位 Flutter 大师 嘛。毕竟连我自己可能都记不清,很久以前文章里的知识细节,让用户和这种 "知识怪物" 交流,肯定能有意料之外的能力。
张风捷特烈
2024/02/25
5310
Coze 扣子 |  AI 养育计划 - "Flutter 大师"
龙哥风向标20231107 GPT拆解
盈利点:利用朋友圈富婆关注疗愈赛道的商机,可以通过直播销售疗愈产品或服务,吸引富裕女性客户,实现高额销售额。
ApacheCN_飞龙
2024/01/31
1640
探秘 AI Agent 之 Coze 智能体:工作流模式(6/30)
摘要:在人工智能领域,随着大模型技术的迅猛发展,智能体的能力得到了极大提升。然而,现实世界中的工作任务往往复杂多样,仅依靠单次大模型调用已难以满足需求。许多任务需要多个步骤、多种技术的协同配合才能完成,例如从数据收集到分析再到决策的过程,或者从用户需求理解到多轮交互并最终提供满意解决方案的服务场景。工作流模式应运而生,它将复杂任务分解为一系列有序的子任务,通过合理组织和协调不同的组件与操作,实现任务的高效处理。这种模式在当前的 AI 应用开发中具有至关重要的意义,它不仅提高了任务处理的准确性和可靠性,还增强了智能体应对复杂多变环境的能力。
正在走向自律
2024/12/18
4.9K2
探秘 AI Agent 之 Coze 智能体:工作流模式(6/30)
【AIGC】ChatGPT提示词Prompt助力广告文案、PPT制作与书籍推荐的高效新模式
本文通过详细介绍了如何使用ChatGPT生成多种类型的内容,包括朋友圈广告推销文案、PPT演示文稿以及书籍推荐爆款文案。利用AI工具,通过精准的提示词和用户的反馈,可以高效提取关键信息,生成具备吸引力、情感共鸣和逻辑清晰的文案或内容框架。这不仅提升了创作效率,还确保了内容质量,适用于各类场景如社交媒体推广、教学演示和营销推广。借助ChatGPT,创作者能够更加专注于优化内容的表达和用户体验。
CSDN-Z
2024/10/17
4420
【AIGC】ChatGPT提示词Prompt助力广告文案、PPT制作与书籍推荐的高效新模式
龙哥风向标20231219 GPT拆解
盈利点:利用小红书热帖中雍和宫手串助力考研上岸的需求火爆,可以代理雍和宫手串并进行销售,同时可以拓展更多与本命年相关产品,如开光手串等,以满足用户需求。
ApacheCN_飞龙
2024/01/31
1560
推荐阅读
相关推荐
新手别怕!3 分钟学会扣子(coze)基础智能体部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验