Laravel – Queue’ parameter


In your config/queue.php configuration file, each queue connection defines a retry_after option. This option specifies how many seconds the queue connection should wait before retrying a job that is being processed. For example, if the value of retry_after is set to 90, the job will be released back onto the queue if it has been processing for 90 seconds without being released or deleted. Typically, you should set the retry_after value to the maximum number of seconds your jobs should reasonably take to complete processing.


My infrastructure network

Về cơ bản infrastructure network này mình build chưa được hoàn thiện, nhưng cũng thấy tương đối happy về nó. 1 chút chia sẽ.

Router 3910

  • Mình có tổng cộng 4 WANs. Tuy nhiên thực tế chỉ có 1 WAN chính với IP tĩnh

Core Switch – CnMatrix 2028-P

  • Thật ra em này có 1 điểm dở là không có port 2.5Gbe nên vướng 1 con Asus AX86U đành phải xài tạm port 1Gbe
  • 1 port SFP+ đến “Workstation”
  • 1 port 1Gbe đến X300
  • 1 port 1Gbe đến ProDesk
  • 1 port 1Gbe đến Asus AX86U


  • Em nó tuy nhỏ bé nhưng lại gần như là mấu chốt chính của toàn bộ Network. Gọi em nó là gatekeeper
  • HAProxy
    • Tiếp nhận 100% mọi requests và sau đó forwarding đến các server phía sau
    • Cũng là em SSH Jumper luôn
    • Tuy nhiên 1 số bất cập mình chưa làm được
      • Forward RDP
      • Passthrough SSL ( cái này đúng ra đã từng làm được mà giờ lại bị stucked )
  • Grafana
  • Loki
  • Syslog
  • Pihole

Asrock X300

  • Bản chất em này … ăn điện ít mà specs cũng kha khá ( 5700G / 64GB RAM & 2 TB SSD ) nên “hiểu” em nó như 1 thiết bị thứ sẽ online gần như 24/7. Do đó các “services” hosting trên đây là các services cần online liên tục
  • 1 con Virtualmin để hosting … chính các web này và n web khác
  • và 1 vài VM khác


  • Em nó chính thức đã được triển khai với ESXi 7
  • 1 em VM “SMB” được attach với các HDDs. Em này bản thân cũng khá nhỏ, chủ yếu để phục vụ SMB / Plex & Torrent thôi
  • Em Workstation ngốn điện cao nên lý thuyết cũng khó online 24/7 mà sẽ có lúc down. Tuy nhiên specs em nó mạnh. Nên các service cần resource cao sẽ nằm trên đây.


As a highly experienced software developer and team leader, I have had the opportunity to work for various renowned companies in the tech industry. One of my most significant experiences was at Egitech, where I had the chance to work as a bridge between Singapore and Vietnam.

During my time at Egitech, I gained a wealth of knowledge and experience in various areas of software development, including Unit Test/Data Mocking, Code pattern and optimizing for high usage flow, CI/CD, Data synchronization, and much more. I was fortunate to work on some highly challenging projects, which allowed me to push my skills to the limit and expand my knowledge in new directions.

One of my main roles at Egitech was to optimize the entire workflow and system, which was no small feat. However, I was able to achieve this goal by working closely with teams in both Singapore and Vietnam, leveraging my expertise in software development to identify areas that could be improved and implementing innovative solutions that streamlined processes and increased efficiency.

Overall, my experience at Egitech was one of the most rewarding of my career. It allowed me to expand my knowledge and skills in a highly dynamic and fast-paced environment, while also giving me the opportunity to work with some of the brightest minds in the industry. I am confident that the experience I gained at Egitech will continue to serve me well in my future endeavors.


During my time at Aspire, I had the opportunity to fully immerse myself in the work and expand my knowledge in areas related to banking and security. As a developer, I was tasked with automating the client’s application review process based on reports from third parties. This involved using Laravel, a powerful PHP framework, to build custom tools and workflows that could streamline the review process and make it more efficient.

One of the key challenges in this project was ensuring that the application review process was secure and met all the necessary compliance requirements. To this end, I had to stay up to date with the latest security standards and best practices, as well as work closely with the Aspire team to identify and address any potential vulnerabilities.

In addition to my technical work, I also had the opportunity to collaborate with other team members and share my knowledge and experience with them. As a result, I was able to help mentor and train junior developers, which was a rewarding experience in its own right.

Overall, my time at Aspire was a valuable learning experience that allowed me to expand my skills and knowledge in new areas. By developing custom tools and workflows, automating the application review process, and staying up to date with the latest security standards, I was able to contribute to the success of the project and help Aspire deliver high-quality services to its clients.


At Serdao, I worked as a Team Lead on an eLearning project. My role involved deploying and building all plans from start to finish based on the customer’s initial idea. I was responsible for ensuring that the project met the customer’s requirements and was completed on time and within budget.

In this position, I managed a team of developers and designers, ensuring that they were working efficiently and effectively to deliver high-quality work. I provided guidance and support to team members, ensuring that they had the resources they needed to succeed in their roles.

One of the challenges of working on an eLearning project was dealing with network and facility issues. I was responsible for solving these problems, working with the team to identify the root cause of the issue and finding a solution that would allow us to move forward with the project. This required excellent problem-solving skills and the ability to work well under pressure.

During my time at Serdao, I also had the opportunity to develop my leadership skills further. I learned how to manage project timelines, delegate tasks effectively, and communicate with stakeholders. I also ensured that the team was motivated and had a positive team culture, which helped us to work together more effectively.

In summary, my experience at Serdao allowed me to take on significant responsibility and develop my leadership skills. Working on an eLearning project was challenging, I am grateful for the experience that I had at Serdao and the skills that I developed while working there.


At Capgemini, I am currently working on developing internal tools for HR. The primary tool is based on Drupal, and I have been tasked with customizing it to better meet the needs of the organization. In addition to this, I have also been developing a custom tool on Symfony that is faster and more efficient than the primary Drupal project.

One of the key focuses of my work at Capgemini has been to develop automation tools that can help to streamline HR processes. I have written daily reports that can be generated automatically, eliminating the need for human communication and saving time for HR staff. These reports have been well-received by the organization, and have helped to speed up work and improve efficiency.

In addition to my work on the HR tools, I have also been focused on improving my technical skills. I have learned more about Drupal and Symfony, as well as other tools and technologies that are used in web development. This has helped me to become a more well-rounded developer, and to stay up-to-date with the latest trends in the industry.

Overall, my experience at Capgemini has been challenging and rewarding. I have had the opportunity to work on a variety of projects and to develop my technical and professional skills. Developing internal tools for HR has been particularly interesting, as it has given me a chance to work closely with a business unit and to understand their needs more deeply. I am proud of the work that I have done at Capgemini, and I look forward to continuing to develop my skills and contribute to the organization’s success.

ESXi – Github Runners via Docker

Context của bài toán này là build 1 con Docker để chạy Github Runners ( scaleble ). Và mọi thứ được chạy trong 1 con VM thuộc về ESXi

  • ESXi build 1 con VMWare chạy Ubuntu Server 20.04 . Cái này dễ dàng không có gì bàn cãi
  • Và tất nhiên sau đó sẽ setup Docker ( không cần chạy without sudo cũng được )

Và ta có 1 file docker-compose sau

version: "3.7"

    image: myoung34/github-runner:latest
    restart: always
      - /var/run/docker.sock:/var/run/docker.sock
      RUNNER_SCOPE: repo
      RUNNER_NAME_PREFIX: runner
      LABELS: ubuntu,x64
      REPO_URL: <repository_url>
      EPHEMERAL: 1
      ACCESS_TOKEN: <github_token>
      replicas: 4
        limits: // Giới hạn tối đa
          cpus: '1'
          memory: 2G
        reservations: // Tối thiểu
          cpus: '1'
          memory: 1G

Và giờ chỉ cần chạy docker-compose up -d

Tuy nhiên câu chuyện chưa hết vui !!! Do bản chất ta đang chạy qua Docker. Do đó việc build các service ( cũng qua docker ) lại không khả thi. Cụ thể là ta cần build MySQL / Redis etc … Vậy thì sao ???

…. tách em nó ra 1 VM khác và update lại IP về con VM đó thôi 😀 . Chút mất công nhưng cơ bản đã dễ dàng rất nhiều.

Từ giờ con VM chạy Runners ta tạo n folder, mỗi folder cho 1 docker-compose ứng với 1 repository