论文标题
Goautobash:带有GitHub Webhooks和排队策略的基于Golang的多线程自动拉动框架
GoAutoBash: Golang-based Multi-Thread Automatic Pull-Execute Framework with GitHub Webhooks And Queuing Strategy
论文作者
论文摘要
最近,使用完整的自动化完成了越来越多的服务器任务,包括为大学课程中的学生进行分级任务,在大型项目和基于服务器的交易中为程序员整合任务,以及在数据密集主题中为研究人员的可视化任务。在服务器上使用自动化提供了减轻手动任务负担的很大可能性。尽管已经开发了用于连续集成的CI/CD等服务器工具,并且已经开发了用于自动化博客部署的HEXO,但它们非常致力于某些功能,因此缺乏一般用法。在本文中,我们介绍了一个基于Golang的自动化框架,该框架对GitHub在多线程方法上发生的事件做出了反应。该框架利用队列来安排提交的任务,并以优先级的方式执行每个任务。然后,我们使用goautograder项目来说明该框架的特定实现及其在实现高空服务器应用程序中的价值。由于Golang由于其令人难以置信的平行编程效率和一种超级令人愉悦的学习方式,因此根据C型编程语言进行学习,我们决定在Golang开发该系统。
Recently, more and more server tasks are done using full automation, including grading tasks for students in the college courses, integrating tasks for programmers in big projects and server-based transactions, and visualization tasks for researchers in a data-dense topic. Using automation on servers provides a great possibility for reducing the burden on manual tasks. Although server tools like CI/CD for continuous integration and Hexo for automated blog deployment have been developed, they're highly dedicated to certain functionalities and thus lack general usage. In this paper, we introduce a Golang-based automation framework that reacts to the events happening on GitHub in a multi-thread approach. This framework utilizes a queue to arrange the tasks submitted and execute each task with a thread in a preemptive manner. We then use the project GoAutoGrader to illustrate a specific implementation of this framework and its value in implementing high-freedom server applications. As Golang is developing in a rapid way because of its incredible parallel programming efficiency and a super-easy way to learn on the basis of C-like programming languages, we decide to develop this system in Golang.